网上有很多讲 用 Python 爬取代理 ip 的文章,如此的文章一搜就有一堆,我自个按照相关的教程尝试了下,确实能够抓取到很多 ip。不过在把 ip 保存到本地文件的过程中,由于保存的格式不美观,我尝试修改代码以改变保存格式,因为在爬取的时候只设置了 Use-Agent,没有设置 proxy,所以在多次运行爬虫脚本后,最后成功被西刺代理网站封掉了我真实的 ip。这下再也不能访问西刺代理的网站了…
该网页无法正常运作
www.xicidaili.com 目前无法处理此请求。
HTTP ERROR 503
既然电脑不能访问西刺代理官网,我就尝试用手机去访问,用手机流量可以打开西刺网站,用手机连接 WiFi 不能打开西刺网站。
用手机流量访问西刺代理,查看国内普通代理页面,在爬虫脚本中加入 普通代理ip,代码如下
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
'Host':'www.xicidaili.com'
}
url = 'http://www.xicidaili.com/nn/'
proxy = '218.28.58.150:53281'
proxies = {
'http':'http://' + proxy
}
res = requests.get(url,headers=headers,proxies=proxies)
print(res.status_code)
更改多次代理 ip 后,有的返回 503
,有的返回 ...Max retries exceeded with url...
,如果自己随便设置一个 ip 和端口,返回的结果是 ...Max retries exceeded with url...
,这就说明了一个问题,有用的代理 ip 被西刺网站给拒绝了,暂时不知道为什么设置了有用的代理 ip,还是被西刺代理屏蔽,这里我想到的一个原因是用普通代理还是会被西刺识别出真实 ip,而我尝试用高匿代理去测试,没找到一个可用的高匿代理,gg 思密达。
经过几个小时的摸索,总算找到了一个可行的方法。下面记录下自己的摸索过程。
在百度首页输入关键字 “ip”,会在结果页显示自己电脑的 ip 地址,如果电脑用了代理 ip,结果页就会显示代理 ip。
为了检测西刺代理的 ip 是否能用,可以这样做:依次打开 I