一.爬虫概述
爬虫就是获取网页并提取和保存信息的自动化程序
1)获取网页
爬虫首先要做的工作就是获取网页,即获取网页的源代码,源代码包含了网页部分有用信息,只要把源代码获取下来,就可以从中提取想要的信息。
Python提供许多库如urllib,requests等,可以实现HTTP请求操作,得到响应后只需要解析数据结构中的Body部分即可,即得到网页的源代码。
2)提取信息
获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。
首先,最通用的方法是用正则表达式提取;另外,由于网页的结构有一定的规则,所以还有一些根据网页节点属性,CSS选择器或Xpath来提取网页信息的库,如Beautiful Soup,pyquery,lxml等
提取信息是爬虫非常重要的部分,它可以使杂乱的数据变得条理清晰,以便我们后续处理和分析数据
3)保存数据
提取信息后,一般会将提取的数据保存到某处以便后续使用,保存的形式多种多样,可以简单保存为TXT文本或JSON文本,也可以保存到数据库,如MySQL和MongoDB等,也可以保存至远程服务器,如借助SFTP进行操作
二.JavaSript渲染页面
现在越来越多的网页采用Ajax,前端模块化工具来构建,整个网页都可能是有Javascript渲染出来的,即原始的HTML代码就是个空壳
因此使用基本HTTP请求库得到的源代码可能和浏览器中的页面源代码不太一样,这种情况,可以分析其后台Ajax接口,也可使用Selenium,Splash这些库来实现模拟Javasript渲染