网络爬虫的执行步骤大致可以分为以下几步:

  1. 进行网络请求,获取网页内容;
  2. 解析网页信息,获取有用信息;
  3. 存储有用信息,与数据库交互;

在使用Python写一些简单工具爬虫时,上述三个步骤都有比较多的第三方库可供我们选择。

1 网页请求

  • urllib:urllib是python内置的处理HTTP请求的库;
  • requests:基于urllib编写,目前Python最简单易用的Http请求库,爬虫首选http请求库;
  • selenium:selenium是一个 web 的自动化测试工具,可直接调用浏览器模拟人类操作,一般在反爬虫严格或者需要直接使用浏览器操作的网站下使用;
  • aiohttp:基于asyncio实现的HTTP框架,异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率;

2 网页解析

  • re:正则匹配,直接使用正则表达式解析网页内容,难度较大;
  • html.parser:Python内置的Html解析库;
  • BeautifulSoup:Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,学习曲线较低,非常容易上手;
  • lxml:xml是一个高性能的Python HTML/XML解析器,使用C编写,用于快速定位特定元素以及节点信息;
  • pyquery:jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好;

3 信息存储,数据库操作

  • pymysql:一个纯 Python 实现的 MySQL 客户端操作库;
  • pymongo:一个用于直接连接 mongodb 数据库进行查询操作的库;
  • redisdump:一个用于 redis 数据导入/导出的工具;

参考链接