Python网络爬虫
爬虫需要循环执行三个操作:解析网页、获取保存信息、遍历网站URL。
一、解析网页获取信息
Python有很多解析网页的库,使用简单、功能强大。
1、urllib和正则
2、resquests和lxml
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还会限定爬取速度。
优化(多线程、分布式)
爬取动态网站、音频、视频