网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
爬虫的本质就是一段自动抓取互联网信息的程序,从网络获取感兴趣的信息,抓取对于我们有价值的信息,爬虫技术是大数据和云计算的基础。
爬虫的实现可认为是模拟浏览器与服务器数据交互,伪造HTTP请求。
使用总览
网页爬取库:
1、urllib模块的urllib.request
#基本被取代
2、requests 第三方库
#中小型爬虫开发
#官网:http://www.python-requests.org/en/master/
3、Scrapy 框架
#大型爬虫开发
内容解析库:
1、BeautifulSoup库
#提取HTML和XML里的数据
#官网https://www.crummy.com/software/BeautifulSoup/bs4/doc/
2、re模块
#正则表达式,处理字符串
查看网站爬虫协议
url/robots.txt
requests库基本使用
安装:
sudo pip3 install requests
使用介绍:
re库(正则表达式)基本使用
安装:
python3环境自带
基本介绍:
1、正则表达式是独立的语言,正则语言是共通的,比如之前写的PHP正则里有很多共同性
2、匹配单元介绍
转义字符:如点代表所有字符,所以可用\.表示字符串的点
【.】、【\】、【?】、【^】、【$】、【*】、【+】、【}】、【{】、【[】、【]】、【|】、【(】、【)】
特殊符号字符:
【\d】所有数字,相当于[0-9]
【\D】所有非数字,相当于[^0-9]
【\w】任意一个字(a-z、A-Z、0-9、下划线、中文字)
【\W】任意非字,相当于[^a-zA-Z0-9_中文字]
【.】(点)任意一个原子
【\s】所有空白(空格、tab键、换行),相当于[\r\t\n\f\v]
【\S】任意非空白
匹配任意一个:
[字符1字符2字符3]//也可为[a-zA-Z]区间//匹配任意一个
注意:
【^】为取反,写在中括号内开头处,表示除了括号里的所有字符都可以
【^】表示普通字符,写在括号里除最前面的任意位置
括号里的字符需要转义,虽然有些不用转义
3、 匹配单元的修饰补充
【*】修饰前面的单个原子可以出现任意次
【+】修饰前面的单个原子至少要出现1次
【?】修饰前面的单个原子只能出现0次或者1次
【{ n }】修饰前面的单个原子只能出现n次
【{a,b}】修饰前面的单个原子只能出现 [ a , b ] 次 //至少两次用{2, }
【|】修饰两边字符串任意谁整体出现,/intelligent|diligent/
【^字符1】必须以字符1开始的行,r’^xceee’必须以xceee为开始,写在表达式最前面
【$字符2】必须以字符2结尾的行,/\Aaa.*wo$/必须以aa开始和wo为结束,.*表示任意
【\A和\Z】开始和结束,用法跟上相同 ,但不是以行为结束
【\b】单词边界(空格),r’\bare\b’,匹配字符串“ware are xxx”匹配到are单词,
【\B】单词边界以外的部分
【( )】改变优先级,r’t(r|x)ol’,可匹配trol或者txol
以小变大:r’tel*’表示l可出现任意次=>r’t(el)*’表示el可出现任意次
用于取出:r’t(el)(.*)’如"xxwtelelllll"输出:[('el', 'elllll')]
使用介绍:
BeautifulSoup库基本使用
安装:
sudo pip3 install beautifulsoup4
使用介绍:
网友评论