200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python爬虫设置代理ip_python爬虫使用代理ip或请求头的问题

python爬虫设置代理ip_python爬虫使用代理ip或请求头的问题

时间:2020-05-23 02:38:54

相关推荐

python爬虫设置代理ip_python爬虫使用代理ip或请求头的问题

在request库中使用代理ip实例如下

headers = {

'User-Agent':

'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/0101 Firefox/30.0',

'Connection':

'keep-alive',

'Cookie':

'session-id=130-1833310-5969908; session-id-time=2082787201l;',

'referer':

'/s/ref=nb_sb_noss?field-keywords=%E7%94%B5%E8%84%91&ie=UTF8&language=zh_CN&url=search-alias%3Daps'

}

# 设置代理ip

proxies = {

'http': 'http://110.52.235.150:9999',

'https': 'https://58.137.62.133:80'

}

list_html = requests.get(

'/s/ref=nb_sb_noss?field-keywords=' + keywords +

'&ie=UTF8&language=zh_CN&url=search-alias%3Daps',

timeout=timeout,

headers=headers,

proxies=proxies,

)

可能会遇到的问题

一、 Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。')))

这种情况是爬取目标对本机进行反爬导致, 目前暂时考虑两种:

ip封锁导致:

解决的关键在于cookie携带还有ip更替, (cookie携带下, 对ip的封锁频率会降低)

请求头referer属性:

部分页面向下访问时会携带referer记录从哪个页面跳转, 有些反爬针对referer进行检测, 如果没有携带或者携带错误会大大增加封锁率

请求头用户代理:

二、Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

这种情况是由于使用的代理ip失效而无法再连接的问题, 可以使用cmd安装tcping命令对ip + 端口进行有效性检查

三、'Connection to 121.61.3.9 timed out. (connect timeout=10)'))

这种情况是由于使用的代理ip连接失效或者连接过于久, 使得超过了程序设定的时间, 可以不设置request的timeout属性以达到最大时间看看是否代理ip失效问题。

使用代理ip池开源工具scylla

目前有很多ip池以接口方式提供, 付费或者免费的都有

由于本人还是学生, 暂时使用免费的开源项目scylla来获取代理ip

具体scylla配置参考我另一篇文章scylla

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。