沃尔玛刮刀被封锁

时间:2021-04-05 19:33:19

标签: python selenium beautifulsoup

我正在尝试从第 1-100 页中抓取沃尔玛类别。我在请求页面之前实现了随机标题和随机等待时间,但在抓取前几页后仍然使用验证码。沃尔玛是不是很擅长检测刮板,还是我做错了什么?

我正在使用 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))  

这是我尝试做的,所以我不会被阻止。有没有更好的方法?谢谢。

1 个答案:

答案 0 :(得分:2)

对于所有请求,您的 IP 仍然相同。 您可以考虑使用 python requests with tor 这当然需要更长的时间,因为请求 get 是通过 TOR 路由的。我不熟悉使用 selenium 在 TOR 上应用代理,但我敢打赌,您可以找到很多教程。

Walmart 可能有这种验证码机制是有原因的,所以也许会寻找另一种获取数据的方法。

相关问题