python爬虫笔记
学了一波爬虫,很好玩,是使用python实现的。爬虫要做的工作基本上分为三步:
(1)爬取网页源码;
(2)解析/过滤源码获得需要的信息;
(3)保存爬取的信息。
先来介绍如何爬取网页源码,我学到的是使用requests库的requests.get()函数实现的,这个函数的参数是一个url地址,返回url对应网站的源码信息,有时候需要对返回信息的编码格式做处理,模板代码如下:
import requests def get_response(url): url = "www.baidu.com" res = requests.get(url) res.encoding = "UTF-8" return res.text
接下来介绍如何对爬取到的网页源码进行解析过滤得到所需信息,可以使用beautifulSoup、xpath、正则表达式等方式,这里介绍xpath,我认为它很好用。假如我们需要获得某个html源码中全部h1标签的文本信息,模板代码如下:
from lxml import etree def parse_html(html): tree = etree.HTML(html) ls = tree.xpath("//h1") return ls
在xpath函数的参数中,//表示从任意位置开始查找。同时,可以对所需查找的标签进行谓语修饰,假如我们需要查找所有class属性为abc的div标签,谓语修饰格式如下:
ls = tree.xpath("//div[@class='abc']")
再假如,我们需要找到所有div标签中的a标签,可以这么写:
ls = tree.xpath("//div/a")
第三,关于信息的保存,我自己使用过保存为.txt文件或者excel表格,很简单的文件读写操作,不再记录。
最后,记录一下关于爬虫的伪装:
(1)修改get()函数的headers参数值,假装成浏览器;
(2)time.sleep(sec)设置延时,模拟人类用户操作;
(3)代理ip池,动态改变ip代理,ip代理也可以通过对get()函数的proxies参数进行修改实现,构建代理ip池可以参考西刺代理;
(4)使用其他的库模拟浏览器。