python爬虫的基础是基本的python语法和网络编程,python语法可以参考我前面的文章,这篇文章主要学习网络编程。
模块socket和socketsever
socket用于编写客户端和服务端,操作方法也很简单。socketsever是一个用于编写服务器的模块。由于和爬虫关系不大,此处略。
模块urllib和urllib2
在python3中,urllib2合并到了urllib。
首先我们来打开一个远程文件(准确来说返回的是一个对象)(只能读取)
from urllib.request import urlopen
page = urlopen('https://enterdawn.top')
urlopen返回的对象支持close、read、readline和readlines,还支持迭代等。
如果我们要下载一个文件,可以使用urlretrieve:
urlretrieve('https://enterdawn.top','D:\\python\\enterdawn.html')
如果没有指定文件名,下载将储存到一个临时位置中,可以用open打开,但使用完成后,需要用函数urlcleanup(不提供任何参数)来清除。
在这里,最基本的爬虫就结束了,流程就是 下载网页——正则匹配。
模块tidy
首先我们需要安装pytidylib库:
pip install pytidylib
如果使用VS等集成开发环境,一般里面也会带有第三方库管理组件。
这个库用于修复格式不规范的html代码,下面是一个例子:
from tidylib import tidy_document
errors = tidy_document(response)