学爬虫肯定跑不了要学怎么使用代理,学习也避免不了各种坑啊,而且像我这种自学的小白纯,遇到问题也没有老师可以问啊。客套话少说,如下:
这就是我遇到的报错:竟然url超出了最大连接次数,然后就显示连接超时了!
可是观察返回的错误信息不难发现:“ 协议(http);ip(49.89.84.56);端口(9999)”这些信息都是正确,包括请求网站也是正确的,那说明我的代码没有问题啊,然后我就换了一个代理测试,
这次返回了一个200,表示请求成功了!
# 代理ip基础:代理ip测试
# 导入requests模块
import requests
# 代理ip请求测试网站
url ='http://httpbin.org/ip'
# 封装请求头
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 Edg/87.0.664.75'}
# 封装代理ip参数值:协议/ip/端口
proxy={'http':'138.68.245.250:3128'}
# 发送请求
response = requests.get(url=url,headers=headers,proxies=proxy,timeout=10)
print(response.status_code) # 打印请求返回的状态码
# 获取响应数据
response_data = response.text
# 把请求之后的获取到的响应数据保存到本地文件夹,以查看代理请求是否成功!
with open('adi.html','w',encoding='utf-8') as adi:
adi.write(response_data)
exit() # 代码执行完毕退出程序
找到写入到本地的adi.html文件,然后打开查看是否请求成功!
如下我们看到 “origin unknown:138.68.245.250”(英文意思是表示未知的IP),这个ip正确我们代码中封装的代理ip,这就表示我们这个爬虫代理请求成功!
在上述问题中,我也是换了各种代理网站的免费ip做测试,竟然都报错,说明很多都是不能用的!但是上面源码的中的代理目前还是可用的,如果找不到可用的免费代理的同学可以复制我上面的去测试!
很多可能像我这样的小白不知道怎么测试代理是否成功,下面我提供几个测试网站:
1.http://httpbin.org/ip # 这个是我们上面用的,推荐使用
2.https://www.ip.cn/
3.https://tool.lu/ip/
直接向网站发送请求记得保存到本地查看(代理ip发送请求的状态)!不要请求之后傻傻的去打开浏览器看(自己计算机的请求状态)!