Разное количество запрошенных абсолютных ссылок с bing.com при просмотре - PullRequest
0 голосов
/ 20 сентября 2018

Я строю веб-скребок для получения абсолютных ссылок с bing.com.Я пробовал множество асинхронных методов для получения ссылок, но они возвращают разное количество абсолютных ссылок каждый раз, когда я запускаю код.

Однажды я получаю все URL-адреса, которые я ищу, но в другой раз количество URL-адресов уменьшается почти до нуля, тогда как я запрашиваю страницу с максимум 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

Есть ли какие-либоесть вероятность, что меня занесут в черный список и это вызывает абсолютное отклонение при поиске ссылок, или это может быть что-то другое?

Спасибо!

...