首页>代理ip知识与免费资源>正文
python爬虫使用代理ip或请求头的问题
发布日期:2019/7/1 21:11:43    阅读量:9791


headers = {

    'User-Agent':

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

    'Connection':

    'keep-alive',

    'Cookie':

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

    'referer':

    'https://www.amazon.com/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(

    'https://www.amazon.com/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('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000166942B8D30>: 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失效问题。