网络爬虫框架主要由控制器、解析器和索引库三大部分组成,而爬虫工作原理主要是解析器这个环节,解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。
解析器的具体流程是:
入口访问->下载内容->分析结构->提取内容
爬虫的思路:
1、查看该网站是否可爬,robot.txt是君子协议,定义了可爬取和不可爬取的内容;之所以叫做君子协议是靠自己的道德去约束的,就是你可以去爬但是违反了你的道德~~~
2、给爬虫一个目标即网页地址及参数,模拟浏览器请求网站,得到网页源码
3、通过 python 正则对所需要的数据进行分析,匹配出数据
4、保存数据(数据库或文件中)
如果网站有反爬虫技术,那么这个过程可能就会稍复杂。
爬虫的难点在于如何去提取到你需要的数据。
response源码中没有要提取的内容:
只有2种可能,一是ajax异步,二是js拼接而成
获取js加载的内容:
1、js加载的:需要分析到底是哪个js加载出来的,可用调试工具打断点。然后模拟请求获得数据
2、使用pyV8
不到万不得已不要模拟浏览器,消耗性能和内存,手工调试分析出数据来源请求即可