我正试图从第1-100页中删去沃尔玛的分类。在请求页面之前,我已经实现了随机标题和随机等待时间,但在抓取前几页之后,仍然会使用验证码。沃尔玛是超级擅长检测刮刀还是我做错了什么
我正在使用selenium、bs4和随机用户代理
代码:
# 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))
这就是我一直试图做的,这样我就不会被阻止。有更好的方法吗?谢谢
对于所有请求,您的IP仍然相同。 您可以考虑使用python requests with tor,当然这需要更长的时间,因为请求get是通过TOR路由的。我不熟悉使用selenium在TOR上应用proxying,但我敢打赌您可以找到很多教程
不过,沃尔玛有这种验证码机制可能是有原因的,所以也许可以寻找另一种获取数据的方法
相关问题 更多 >
编程相关推荐