一.代理服务器设置
如果使用同一个IP去爬取一个网站的网页,时间久了会别该网站服务器屏蔽,所以,为了防止出现自己的IP被网站服务器屏蔽的事情发生,我们可以使用比如的IP,就算别屏蔽了,也是别人的IP,如果不知道怎么找代理服务器的可以到网上找
首先我们介绍几个方法:
ProxyHandler() 方法:这个是设置对应的服务器信息,设置格式如下:url.request.ProxyHandler({'http':代理服务器的地址})
build_open()方法:这个方法创建一个自定义的opener对象
例如:
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="202.75.210.45:7777"
data=use_proxy(proxy_addr,"http://www.baidu.com")
print(len(data))
二.DebugLog实战
如果想在程序运行时边运行边打印调试日志,此时就需要开启Debuglog,开启Bebuglog方法如下:
(1)使用urllib.request.HTTPHandler()和urllib.request.HTTPShandler()将debuglevel设置为1
(2)使用urllb.request.build_opener()创建自定义的opener对象,并使用(1)中设置的值作为参数
(3)使用urllib.request.install_opener()创建全局默认的opener对象,这样,使用urlopen时也会自动使用我们安装的opener对象
(4)进行后续操作
根据上面的思路,可以通过代码开启BebugLog:
import urllib.request
httphd=urllib.request.HTTPHandler(debuglevel=1)
httpshd=urllib.request.HTTPSHandler(debuglevel=1)
opener=urllib.request.build_opener(httphd,httpshd)
urllib.request.install_opener(opener)
data=urllib.request.urlopen("http://www.baidu.com")
当我们运行程序时就会打印调试的Log日志