我正在构建网络抓取工具,以从bing.com获得绝对链接。我尝试了许多异步方法来检索链接,但是每次我运行代码时,它们都会返回不同数量的绝对链接。
有一天,我得到了所要查找的所有网址,但另一方面,我发现网址的数量几乎减少为零,而我所请求的网页最多包含80个结果,例如使用https://www.bing.com/search?q=%27facebook%27&count=80。
我对此进行了大量研究,但是诸如JS繁重的网页或在发出请求时使用标头之类的问题似乎并不是问题所在。
我担心这与被列入黑名单有关,但我不确定情况是否如此。
现在,我正在使用以下代码来检索链接:
from requests_html import HTMLSession
from requests_futures.sessions import FuturesSession
from concurrent.futures import ThreadPoolExecutor
def get_result(future):
try:
return future.result()
except:
return
def get_absolute_links_async(urls):
my_session = HTMLSession()
session = FuturesSession(executor=ThreadPoolExecutor(max_workers=60), session=my_session)
future = []
for url in urls:
future.append(session.get(url))
responses = [get_result(f) for f in future]
session.close()
links = list(map(lambda r: r.html.absolute_links, responses))
return links
是否有可能我被列入黑名单,并导致绝对链接检索偏离,或者可能有所不同?
谢谢!