python-快速使用urllib爬取网页(6-代理服务器)
2017-12-24 10:17
330 查看
通过上面的学习,我们发现爬取的时候会出现一下问题
1、网站不能被爬取,即网站设置了反爬取
2、字符码的问题
3、爬取的时候超时了,我们没爬取成功
a、模拟浏览器访问网页的两种方法
b、采用编码解码
c、自己设置Timeout时间
现在,又出现了一个问题,当我们的IP被网站服务器屏蔽的时候,我们就无法访问网站,就像我们无法访问国外的网站一样,我们这时就要用到代理服务器(翻墙的同学可能更加了解),也就是说我们不用自己的IP去访问网站,而是通过代理服务器IP去访问网站获取信息,我们再从代理服务器那里获取我们想要的信息。
我们可以从网上搜索免费代理IP,例如小编随便搜索了一个
http://www.xicidaili.com/
我们选择一个验证时间很短的(长的可能失效了)
220.168.237.187 8888 湖南常德 高匿 HTTPS 1天 不到1分钟
比如这个,验证时间不到一分钟
学过计算机网络的同学可能都知道,在运输层实现进程之间的逻辑通信的时候,我们采用的是套接字,套接字的格式就是:
IP:端口号,我们这里就用到套接字
通过代理服务器,我们就可以实现爬取我们无法访问的网站信息了
use_proxy : 自定义函数,主要实现采用代理服务器爬取网页的功能
urllib.request.ProxyHandler():设置对应的代理服务器信息
urllib.request.build_opener() : 创建一个自定义的opener对象
urllib.request.install_opener():创建全局默认的opener对象
若爬取失败,可能就是IP失效了,大家可以换个IP试一试
1、网站不能被爬取,即网站设置了反爬取
2、字符码的问题
3、爬取的时候超时了,我们没爬取成功
a、模拟浏览器访问网页的两种方法
b、采用编码解码
c、自己设置Timeout时间
现在,又出现了一个问题,当我们的IP被网站服务器屏蔽的时候,我们就无法访问网站,就像我们无法访问国外的网站一样,我们这时就要用到代理服务器(翻墙的同学可能更加了解),也就是说我们不用自己的IP去访问网站,而是通过代理服务器IP去访问网站获取信息,我们再从代理服务器那里获取我们想要的信息。
我们可以从网上搜索免费代理IP,例如小编随便搜索了一个
http://www.xicidaili.com/
我们选择一个验证时间很短的(长的可能失效了)
220.168.237.187 8888 湖南常德 高匿 HTTPS 1天 不到1分钟
比如这个,验证时间不到一分钟
学过计算机网络的同学可能都知道,在运输层实现进程之间的逻辑通信的时候,我们采用的是套接字,套接字的格式就是:
IP:端口号,我们这里就用到套接字
通过代理服务器,我们就可以实现爬取我们无法访问的网站信息了
def use_proxy(proxy_addr,url): import urllib.request proxy = urllib.request.ProxyHandler({"http":proxy_addr}) opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler) urllib.request.install_opener(opener) data = urllib.request.urlopen(url).read().decode("utf-8") return data proxy_addr = "220.168.237.187:8888" data = use_proxy(proxy_addr,"http://www.baidu.com") print(len(data))
use_proxy : 自定义函数,主要实现采用代理服务器爬取网页的功能
urllib.request.ProxyHandler():设置对应的代理服务器信息
urllib.request.build_opener() : 创建一个自定义的opener对象
urllib.request.install_opener():创建全局默认的opener对象
若爬取失败,可能就是IP失效了,大家可以换个IP试一试
相关文章推荐
- python-快速使用urllib爬取网页(5-POST)
- python-快速使用urllib爬取网页(8-URLError)
- python-快速使用urllib爬取网页(3-超时异常)
- python-快速使用urllib爬取网页(7-DebugLog)
- python-快速使用urllib爬取网页(4-GET)
- python-快速使用urllib爬取网页(1)
- python-快速使用urllib爬取网页(小结)
- python使用urllib2包实现抓取抓取网页的三种形式
- 使用Python中的urlparse、urllib抓取和解析网页(一)
- Python3使用urllib访问网页
- python 使用 urllib2 抓取网页内容
- 使用Python中的urlparse、urllib抓取和解析网页(一)
- 使用python urllib2获取网页信息
- Python使用urllib、urllib2捉取网页内容
- 利用python3使用urllib通过指定的URL抓取网页内容
- 【python】使用Python中的urlparse、urllib抓取和解析网页
- urllib实战----使用代理服务器爬取网页(021)
- 使用 python urllib2 抓取网页时出现乱码的解决方案
- python使用代理服务器获取网页数据
- 黄聪:使用Python中的urlparse、urllib抓取和解析网页(一)