代码问题
import urllib.requestimport random#随机使用ip
#访问一个网站,该网站的作用是自动返回你的ip
url='http://www.whatismyip.com.tw'
iplist=['119.6.144.73:81','183.203.208.166:8118','111.1.32.28:81']
#第一步搜索‘代理Ip’里面有对应的服务器和相应的端口号
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
#创建一个opener(固定)
opener=urllib.request.build_opener(proxy_support)
#防止网站识别出python或请求太频繁而禁止操作
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36')]
#安装一个opener
urllib.request.install_opener(opener)
#访问
response=urllib.request.urlopen(url)
html=response.read().decode('utf-8')
print(html)
这个代码是爬虫代理那一块隐藏用户ip的我照着小甲鱼的代码一行一行打的出错了,不知道问题出在哪里?
甲鱼哥的查 IP 的网站好像已经挂了,你换个网站就行: https://httpbin.org/get
import urllib.request
import random#随机使用ip
#访问一个网站,该网站的作用是自动返回你的ip
url='https://httpbin.org/get'
iplist=['119.6.144.73:81','183.203.208.166:8118','111.1.32.28:81']
#第一步搜索‘代理Ip’里面有对应的服务器和相应的端口号
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
#创建一个opener(固定)
opener=urllib.request.build_opener(proxy_support)
#防止网站识别出python或请求太频繁而禁止操作
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36')]
#安装一个opener
urllib.request.install_opener(opener)
#访问
response=urllib.request.urlopen(url)
html=response.read().decode('utf-8')
print(html)
Twilight6 发表于 2020-7-4 13:23
甲鱼哥的查 IP 的网站好像已经挂了,你换个网站就行: https://httpbin.org/get
能运行,但是怎么看出来的结果是不是我们想要看到的呢?代码的初衷是改变用户的ip然后访问网站使用ip列表里面的ip地址,但是我运行出来的得到的ip地址好像不是定义的ip地址里面的ip啊??能运行一下然后通过运行结果解释一下吗 Twilight6 发表于 2020-7-4 14:00
我也没搞明白,我允许发现也是只返回自己的IP
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36')]。好吧,那能解释一下这句代码的作用吗?
波大大12138 发表于 2020-7-4 14:05
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,...
这个就是模仿浏览器访问的意思,括号里面的是浏览器的型号,版本等信息,就是你浏览网站的时候,发出请求会带上自己浏览器的信息
然后通过这些,告诉网站,我这个是 通过浏览器访问的,这是爬虫最基本的伪装 本帖最后由 丿章鱼哥 于 2020-7-4 14:15 编辑
波大大12138 发表于 2020-7-4 14:05
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,...
这一行是访问网站时你的浏览器信息,如果没有这行你用爬虫访问网站你的User-Agent就显示的是默认的python.....,这样的话一般网站都会有防爬措施,你的爬虫可能就没法访问了。比如你的浏览器就是谷歌的,系统是64位win10. 本帖最后由 Twilight6 于 2020-7-4 14:40 编辑
波大大12138 发表于 2020-7-4 14:05
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,...
这样就可以了,刚刚我测试成功了,IP重新去网上找了几个:
import urllib.request
import random#随机使用ip
#访问一个网站,该网站的作用是自动返回你的ip
url='http://httpbin.org/get'
iplist=['18.25.13.185:8118','1.198.72.44:9999','123.169.124.88:9999']
#第一步搜索‘代理Ip’里面有对应的服务器和相应的端口号
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
#创建一个opener(固定)
opener=urllib.request.build_opener(proxy_support)
#防止网站识别出python或请求太频繁而禁止操作
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36')]
#安装一个opener
urllib.request.install_opener(opener)
#访问
response=urllib.request.urlopen(url)
html=response.read().decode()
print(html)
页:
[1]