首页 > 代码库 > 手动爬虫之流程笔记1(python3)

手动爬虫之流程笔记1(python3)

一、引入拓展库

  由于刚刚起步学习爬虫,故从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 =http://www.mamicode.com/ ur.urlopen(req).read()
21 # 文件指向
22 fh = open(aim_file, "wb")
23 # 信息转档
24 fh.write(data)
25 # 关闭文件
26 fh.close()

 

 

  

手动爬虫之流程笔记1(python3)