简单的说,爬虫就是获取网页并提取和保存信息的自动化程序。简单的介绍下:
(1)获取网页
爬虫首先要做的工作就是获取网页,这里指的就是获取网页的源代码,源代码包含了网页的部分有用信息,只要把源代码获取下来,可以从中获取想要的信息。
我们可以利用Python的一些库来实现向网站的服务器发送请求,请求和响应都可以用库提供的数据结构来表示,得到响应之后只需要解析数据结构中的Body 部分,就可以得到网页的源代码。
(2)提取信息
获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。 首先,最通用的方法便是使用正则表达式提取,但是在构造正则表达式时比较复杂容易出错。
另外,由于网页的结构有一定的规则, 根据网页节点属性、CSS选择器、XPAth 来提取网页信息的库。 如 Beautiful Soup、pyquery、lxml等。 使用这些库,我们可以高效的从中提取网页信息,如节点的属性,文本值等。
提取信息是爬虫非常重要的一部分,他可以使杂乱的数据变得条例清晰,方便我们进行后续的处理。
(3) 保存数据
提取到信息之后,我们一般会将提取到的数据保存到某处以便后续使用,这里保存形式多种多样,如 text文本或 JSON 文本,也可以保存到数据库中。
JavaScript 渲染页面:
有时候,我们在利用 urllib 或 request 抓取网页时,得到的源代码实际和浏览器中看到的不一样。这是一个非常常见的问题。现在网页越来越多的使用 Ajax、前端模块化工具来构建,这个网页都是由 JavaScript 渲染出来的,也就是说 HTML代码就是一个空壳, 直接 引入 js 对网页渲染。
我们可以使用 Selenium 、Splash 实现模拟JavaScript 的渲染。
