抓取时从bing.com请求的绝对链接数量不同

时间:2018-09-20 08:55:07

标签: python url screen-scraping bing blacklist

我正在构建网络抓取工具,以从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

是否有可能我被列入黑名单,并导致绝对链接检索偏离,或者可能有所不同?

谢谢!

0 个答案:

没有答案