爬虫的基本原理
简单来说:爬虫就是获取网页并提取网页的自动化程序。
1)获取网页
爬虫需要做的首要工作就是获取网页,既网页的有效源代码。
在网页中我们我们能见到最多的就是常规网页,它们对应的就是HTML代码;同时有些网页可能返回的不是HTML代码,而是JSON字符串;另外,我们还可以看到各种二进制数据以及各种CSS、JavaScript和配置文件,这些文件我们都可以通过爬虫抓取下来。
有时候我们在用urllib和requests抓取网页时,可能得到的原代码和浏览器中看到的不一样,这是一个很常见的问题,现在网页越来越多的采用Ajax、前端模块化工具来构建,整个网页都能由Javascript渲染出来,
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>This is a Demo</title>
</head>
<body>
<div id="container">
</div>
</body>
<script src="app.js"></script>
</html>
对于这种情况,我们可以分析后台Ajax接口,也可以使用Selenium、Spalsh这样的库来模拟Javascript渲染。
2)提取信息
分析网页源代码最通常的方法就是使用正则表达式提取,但是在构造正则表达式时比较复杂且容易出错;另外可以运用根据网页结构的规律对其节点属性、CSS选择器或XPath来提取网页信息的库,如Beautiful Soup、pyquery、lxml等。使用这些库,我们可以高效快速的从中提取网页信息,如节点属性,文本值等
3)保存数据
提取信息后,我们一般会将提取到的数据保存以便后续使用。可以使用简单保存为TXT文本或者JSON文本,也可以保存到数据库,如MySQL和MongDB等,也可以保存到远程服务器,如借助SFTP进行操作。
——本文摘自python网络爬虫开发实战
版权声明:本文为weixin_43796016原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。