这周学习了python网络爬虫,主要学了requests库,Beautiful Soup库和Re正则表达式的入门,也学习编写了几个简单的爬虫实例。
网络服务器上的数据都是有产权归属的,网络爬虫获取数据后牟利是有可能带来法律风险的,查看Robots协议即可以知道哪些页面可以抓取,哪些不行,Robots协议保存在网站根目录下的robots.txt文件中。robots协议的基本语法如下:
```
User-agent:*
Disallow:/
```
#其中*是代表所有,/是表示根目录
Robots协议是建议但不是约束性,可以不遵守,但是存在法律风险。
其次要安装需要使用的第三方库,直接用pip install+库名这个命令即可安装,在写代码的时候直接import 库名导入就可以使用了。
爬取网页主要用到的是requests库,通用代码框架如下:
正则表达式是用来简洁表达一组字符串的表达式,比如一组字符串'PN','PYN','PYTN','PYTHN,'PYTHON'可以直接用一个正则表达式表示P(Y|YT|YTH|YTHO)?N,非常简洁。
正则表达式语法由字符和操作符构成,常用的操作符如下:
e.g.IP地址的正则表达式:
(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])
Re库的主要功能函数如下
e.g.
这是搜索字符串中包含以1-9中任一数字开头,后面再有5位数字的子串,以列表形式返回
另外,Re库默认采用的时贪婪匹配,即输出匹配的最长子串,在操作符后增加?即可变成最小匹配
e.g.