一、引入拓展库
由于刚刚起步学习爬虫,故从urllib库开始
首先引入urllib,这里主要用到urllib中request类
import urllib.request as ur
二、设置全局参数
我把它分为三个变量:代理服务器IP、目标网址、存放路径。
# 代理服务器的地址proxy_add = "110.183.238.145:811"# 获取目标网址url = "https://www.baidu.com"# 设置目标文档(路径+文件名【包括后缀】)aim_file = "E:/workspace/PyCharm/codeSpace/books/python_web_crawler_book/chapter4/demo2/1.html"
三、将爬虫模拟成浏览器访问页面
由于urlopen不支持一些HTTP的高级功能,所以要想达到预期的访问效果,有两种方式。
一是使用build_opener()修改报头,二是使用add_header()添加报头。本人更加倾向于第二种,使用方法如下
# 添加报头req = ur.Request(url)req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0')
四、设置服务器代理
# 设置代理proxy = ur.ProxyHandler({ 'http': proxy_add})opener = ur.build_opener(proxy, ur.HTTPHandler)ur.install_opener(opener)
五、爬行页面并信息存档
# 读取数据info = ur.urlopen(req).read()fh = open(aim_file, "wb")# 信息转档fh.write(info)# 关闭文件fh.close()
六、源代码:
1 import urllib.request as ur 2 3 # 代理服务器的地址 4 proxy_add = "110.183.238.145:811" 5 # 获取目标网址 6 url = "https://www.baidu.com" 7 # 设置目标文档(路径+文件名【包括后缀】) 8 aim_file = "E:/workspace/PyCharm/codeSpace/books/python_web_crawler_book/chapter4/demo2/1.html" 9 10 # 添加报头11 req = ur.Request(url)12 req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0')13 14 # 设置代理15 proxy = ur.ProxyHandler({ 'http': proxy_add})16 opener = ur.build_opener(proxy, ur.HTTPHandler)17 ur.install_opener(opener)18 19 # 读取数据20 data = ur.urlopen(req).read()21 # 文件指向22 fh = open(aim_file, "wb")23 # 信息转档24 fh.write(data)25 # 关闭文件26 fh.close()