我正试着从1-100页中摘取沃尔玛的一个分类。在请求页面之前,我已经实现了随机头和随机等待时间,但是在抓取前几个页面之后,仍然会使用captcha。沃尔玛是超级擅长发现铲运机,还是我做错了什么?
我使用的是selenium,bs4和random_user_agent。
代码:
# Randomize User Agents
software_names = [SoftwareName.CHROME.value]
operating_systems = [OperatingSystem.WINDOWS.value]
user_agent_rotator = UserAgent(
software_names=software_names, operating_systems=operating_systems, limit=1000)
user_agents = user_agent_rotator.get_user_agents()
################################################
# Selenium
options = webdriver.ChromeOptions()
options.add_argument('--profile-directory=Profile 1')
options.add_argument('use-fake-ui-for-media-stream')
options.add_argument(
'load-extension=' + r'ad blocker path here')
options.add_argument("window-size=900,1080")
driver = webdriver.Chrome(
ChromeDriverManager().install(), options=options)
driver.execute_cdp_cmd('Network.setUserAgentOverride', {
"userAgent": user_agent_rotator.get_random_user_agent()})
driver.get(url)
################################################
# Randomize time between requests
time.sleep(randint(5, 15)) 这就是我一直想做的,这样我就不会被阻止。有没有更好的方法?谢谢。
发布于 2021-04-05 19:41:41
对于所有请求,您的IP仍然是相同的。您可以考虑使用python (当然需要花费更长的时间),因为请求是通过TOR路由的。我不熟悉使用selenium在TOR上应用代理,但我敢打赌,您可以找到很多教程。
不过,沃尔玛可能有理由实施这种captcha机制,因此可能会寻找另一种获取数据的选择。
https://stackoverflow.com/questions/66958754
复制相似问题