爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于咱们有价值的信息;html
Python爬虫架构主要由五个部分组成,分别是 调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)python
至关于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工做;正则表达式
包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式:经过内存、数据库、缓存数据来实现;数据库
经过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib(Python官方基础模块),包括须要登陆、代理和Cookie;还有requests(第三方包);缓存
将一个网页字符串进行解析,能够按照咱们的要求来提取出咱们有用的信息,也能够根据DOM树的解析方式来解析;架构
网页解析器有:ide
1)正则表达式:url
直观,将网页转成字符串经过模糊匹配的方式来提取有价值的信息;插件
但当文档比较复杂的时候,该方法提取数据的时候就会很是困难;代理
2)html.parser:Python自带的;
3)beautifulsoup:第三方插件,能够使用Python自带的html.parser进行解析,也能够使用lxml进行解析;
4)lxml:第三方插件,能够解析xml和HTML;
html.parser和beautifulsoup,以及lxml都是以DOM树的方式进行解析的;
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文档太长就不附在这里了)
其余的后续会有示例,咱们慢慢理解;
参考连接:
菜鸟教程《Python爬虫介绍》