Fork me on GitHub

Python网络爬虫

  爬虫需要循环执行三个操作:解析网页、获取保存信息、遍历网站URL。

一、解析网页获取信息

  Python有很多解析网页的库,使用简单、功能强大。

1、urllib和正则

 urlib文档

 

2、resquests和lxml

requests文档

 

import requests
response = requests.get(url)
content = requests.get(url).content
print "response headers:", response.headers
print "content:", content

乱码通常是由于字符编码不同导致的。python3的字符串可以使用encode()函数进行编码转换。

requests会自动解码获取到的网页。对出现乱码的,我们可以通过encoding属性更改解码方式。

r = requests.get("http://www.dytt8.net/")
r.encoding = None

 

 

 

 

3、BeautifulSoup

 

 

 

二、遍历网站URL

记录浏览过的网页

 

 

 

 

三、登录

 

header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36',
'Host': 'www.zhihu.com',
'Referer': 'http://www.zhihu.com/'
}

 

四、Scrapy框架

写过简单爬虫之后,再来研究scrapy,才知道scarpy到底方便在哪里。

 

 

 

 

五、爬虫进阶

 

 

反爬虫(验证码、代理池)

robots.txt是一种存放于网站根目录下的ASCII编码的文本文件,用来告诉爬虫,哪些内容不应被搜索引擎的爬虫获取,哪些不可以被爬虫获取。有的robots.txt还会限定爬取速度。

 

优化(多线程、分布式)

爬取动态网站、音频、视频

 

 

 

 

 

 

 

 

posted on 2016-06-21 20:27  地精的贪婪  阅读(211)  评论(0编辑  收藏  举报