免责声明:这是我第一次涉足网络抓取活动
我有一个〜400个搜索结果URL的列表,我正在尝试使用Selenium来收集信息。在某个时候,我将重定向并显示以下文本:
”“由于使用率高于正常水平,您对VINELink.com的访问已被拒绝...您正试图通过以下IP地址访问此网站。请确保您的防火墙设置不限制访问。 [我的IP地址]“
有没有一种方法可以生成有效的随机IP地址列表,在循环中随机选择一个,然后将其馈送到Selenium WebDriver,以避免被阻止?
我了解这个问题有道德考虑(实际上,我已经联系该站点解释了我的良性用例,并询问他们是否可以解除阻止我的真实IP地址);我最感兴趣的是这是否可以做到。
URL的缩写列表:
y
循环的缩写代码(缺少有效IP地址的实际列表):
['http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=34003&agency=33&offenderID=2662',
'http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=34003&agency=33&offenderID=A21069',
'http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=34003&agency=33&offenderID=B59293',
...]
答案 0 :(得分:0)
有没有一种方法可以生成有效的随机IP地址列表, 在循环中随机选择一个,并将其输入到Selenium中 WebDriver以避免被阻止?
要从序列中获取随机项,请使用random.choice(seq)
模块中的random
。
请参阅:https://docs.python.org/3/library/random.html#random.choice
示例:
import random
proxies = ['10.0.1.1', '10.0.1.2', '10.0.1.3']
proxy = random.choice(proxies)
注意: 您提出的问题没有意义,因为您表示要生成有效 IP地址列表。您不能只生成随机IP并期望它们起作用……您实际上必须向脚本提供有效IP。您将需要提供此功能的服务器基础结构(即绑定到列表中每个地址的工作代理服务器池),因为请求将通过这些服务器进行路由。如果您只是想欺骗IP而没有可供代理使用的服务器池,答案是“不,那将不起作用。”