通过第一个例子已经知道了爬虫相关的基本知识,接下来就是要越过各种障碍了,首先要学习的就是使用代理技术,随机的代理技术可以降低爬虫程序被服务器发现的概率,增加成功率。
相关实现代码如下:
# 首先导入需要的两个包,第一个是爬虫相关 ,第二个 random 是生成随机数
import urllib.request as req
import random
#需要访问的ip地址
url = 'http://www.baidu.com/'
#代理地址列表
iplist = ['193.112.104.133:808','103.235.199.93:42710','117.191.11.80:80']
#生成一个代理
proxy_support = req.ProxyHandler({'http':random.choice(iplist)})#
#打开代理
opener = req.build_opener(proxy_support)
#给代理添加一个头信息
opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36')]
#如果所有连接都需要使用代理的话就使用下面的打开方式
# req.install_opener(opener)
# response = req.urlopen(url)
#如果是某一次连接需要使用代理的话就使用以下方式打开
request = req.Request(url)
response = opener.open(url)
#读取内容,并且进行解码操作,有的网站是 GBK编码的那就需要使用GBK解码 这个地方需要注意
html = response.read().decode('utf-8')
#打印输出
print(html)