Python爬虫介绍
什么是爬虫:
爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息;
Python爬虫架构:
Python爬虫架构主要由五个部分组成,分别是 调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)
1)调度器:
相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作;
2)URL管理器:
包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式:通过内存、数据库、缓存数据来实现;
3)网页下载器:
通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib(Python官方基础模块),包括需要登录、代理和Cookie;还有requests(第三方包);
4)网页解析器:
将一个网页字符串进行解析,可以按照我们的要求来提取出我们有用的信息,也可以根据DOM树的解析方式来解析;
网页解析器有:
1)正则表达式:
直观,将网页转成字符串通过模糊匹配的方式来提取有价值的信息;
但当文档比较复杂的时候,该方法提取数据的时候就会非常困难;
2)html.parser:Python自带的;
3)beautifulsoup:第三方插件,可以使用Python自带的html.parser进行解析,也可以使用lxml进行解析;
4)lxml:第三方插件,可以解析xml和HTML;
html.parser和beautifulsoup,以及lxml都是以DOM树的方式进行解析的;
5)…
5)应用程序:
就是从网页提取的有用数据组成的一个应用;
调度器工作图解:
示例:
urllib实现下载网页内容:(PY3)
!/usr/bin/python
-- coding:utf-8 --
import urllib.request
import urllib
url = 'http://www.baidu.com'
response = urllib.request.urlopen(url)
content = response.read().decode('utf-8')
print(content)
(content是html文档太长就不附在这里了)
其他的后续会有示例,我们慢慢理解;