Я пытаюсь почистить некоторые статьи с seekalpha.com.Однако после определенного количества царапин появляется капча.(то есть https://seekingalpha.com/article/4230872-dillards-still-room-downside)
Однако у меня возникают серьезные проблемы.
Я использую from fake_useragent import UserAgent
для рандомизации моего заголовка.
Я использую случайное время ожидания между запросами
Я меняю IP-адрес с помощью VPN при появлении капчи. Однако каким-то образом капча все еще появляется, когда появляется мой IP-адрес.
Это также странно, потому что, хотя в ответе на запрос появляется капча, капча не появляется в браузере.
Итак, я предполагаю, что по заголовкупросто неправильно.
Я отключил js и cookie при получении этого запроса, потому что с cookie и js, есть четкая информация, что веб-сайт отслеживает меня.
headers = {
"authority": "seekingalpha.com",
"method": "GET",
"path": "/article/4230872-dillards-still-room-downside",
"scheme": "https",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"accept-encoding": "gzip, deflate, br",
"accept-language": 'en-US,en;q=0.9',
"upgrade-insecure-requests": "1",
"user-agent": RANDOM
}
Это близко кчто использует веб-сайт: они добавляют
"cache-control": "max-age=0",
"if-none-match": 'W/"6f11a6f9219176fda72f3cf44b0a2059"',
Это мое исследование - etags, который используется для отслеживания и может использоваться для отслеживания людей. 'W/...'
изменяет каждый запрос.
Также, когда я использую wkhtmltopdf , чтобы напечатать экран как pдф, у меня капча никогда не появляется.Я также пытался использовать селен, что еще хуже.Кроме того, я попытался использовать прокси, как показано здесь .
Так что определенно есть способ сделать это.Однако я не делаю это правильно.У кого-нибудь есть идеи, что я делаю неправильно?
Редактировать: 1. Сеансы не работают
Кажется, что не работают случайные заголовки
Кажется, что не работают случайные сны
Я не могуполучить доступ к веб-странице, используя мой VPN.Даже если при использовании запросов появляется капча, на веб-сайте в браузере нет капчи.
Селен не работает.
Я действительно не хочу платить за услугу по решению капч.
Я считаю, что проблема в том, что я недостаточно хорошо имитирую браузер.
КОД ПОСЛЕ ИСПОЛЬЗОВАНИЯ FIREFOX И СЕССИЙ:
headers = {
"Host": "seekingalpha.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Referer": "https://seekingalpha.com/article/4230534-top-investment-idea-2019-8_4-percent-yield-huge-upside-brookfield",
"Connection": "keep-alive",
"Cookie": "machine_cookie=7303078485198; __utma=150447540.1851983007.1546469337.1546469337.1546469337.1; __utmb=150447540.12.9.1546469900508; __utmc=150447540; __utmz=150447540.1546469337.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; _igt=803cd9bc-cab1-4ebf-acf2-0f3e24cd4ab6; _pxvid=97da9aa0-0ee0-11e9-8dfa-3d4fb4091b16; _pxde=9ac7f544ed6bf87b3b17eab28485c874a9ec30af08c58bd06939e970333f9fb0:eyJ0aW1lc3RhbXAiOjE1NDY0Njk5MjMxNTl9; _fbp=fb.1.1546469337674.750013017; _px=jmSp9VoiTt+K7GfprDo2E0ESrv6B6oWW6aBWS80oMIv/ybegmmYZiH6d37Ko4xx1q8kzxUMBhDcjcagHc0sJ7g==:1000:caXByzVxpWn0yCp7pm7F4ZoS6opLJ4PpLAUY6hxyXg2qiKEisAvTpQ8McX4G5ki3KhR0mYSxP2lPzmBmsAHfT/tUDNQf6etMaeTHNeaI7/Bo57IdaZ0t8EVaoGN6JdT/37SKKCoj+wWhxwZT76R4GorL6HmG9zJoeNg4aq8AFpSaGRby+Y0oNFf+RGGNpyvPK/a7XFLpX2Wqil7C8NPGCMTMn9OP34oh7pQkIjNQADJh0LK+VooK4L8xeeEigO45tZfIZDoyo60T8yrZCeeVww==; _px2=eyJ1IjoiZTY3MzU3YTAtMGVlMS0xMWU5LWEwMTgtYTEzNmYxODA1MTRlIiwidiI6Ijk3ZGE5YWEwLTBlZTAtMTFlOS04ZGZhLTNkNGZiNDA5MWIxNiIsInQiOjE1NDY0NzA0MjMxNTksImgiOiJkN2ZmYmU1NDFiMTc2MmZiODE0NzMwMmRlNjVlMmU5OTcxMmE0YWNiOTkzODNkZTk3M2Q5Y2MxMTlhYjgzZTRiIn0=; h_px=1; __gads=ID=ec9252ba55729c81:T=1546469341:S=ALNI_MYXXw_CSX4n0nB6LlTDxgom1eFNMA; hsfirstvisit=; __hstc=234155329.06decc4a37bd788535f37984c1b06431.1546469363604.1546469363604.1546469363604.1; hubspotutk=06decc4a37bd788535f37984c1b06431; __hssrc=1; __hssc=234155329.5.1546469363604; cto_lwid=9fc606f8-a6da-4881-889a-2eee84855834; _pxff_tm=1; OX_plg=swf|shk|pm; _ig=d545d9b6-0d2b-4c3b-c8a0-4f63e21e7289; dmxRegion=false; _sasource=article_bottom_lift",
"Upgrade-Insecure-Requests": "1",
"TE": "Trailers"
}
def main():
ua = UserAgent()
count = 0
file_writer("Run\n")
collection_tracker("Run\n")
session = requests.session()
for link in links():
headers["User-Agent"] = str(ua.random)
r = session.get(link, headers = headers)
soup = BeautifulSoup(r.content, "html5lib")
print(soup)
sleep(randint(1000,3000)/1000)
file_writer(Header(soup).output()[0])
collection_tracker(link +"\n")
if count > 200:
break
count += 1