Я строю веб-скребок для получения абсолютных ссылок с 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
Есть ли какие-либоесть вероятность, что меня занесут в черный список и это вызывает абсолютное отклонение при поиске ссылок, или это может быть что-то другое?
Спасибо!