Python网络爬虫-正则表达式

正则表达式

概念

用来表示一组字符串的表达式,通用字符串表达框架,十分强大。
主要应用在字符串匹配中。

操作符

操作符 说明 实例
. 表示任何单个字符
[ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a‐z]表示a到z单个字符
[^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符
* 前一个字符0次或无限次扩展 abc* 表示ab、abc、abcc、abccc等
+ 前一个字符1次或无限次扩展 abc+ 表示abc、abcc、abccc等
? 前一个字符0次或1次扩展 abc? 表示ab、abc
| 左右表达式任意一个 abc|def表示abc、def
{m} 扩展前一个字符m次 ab{2}c表示abbc
{m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc、abbc
^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
$ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾
( ) 分组标记,内部只能使用| 操作符 (abc)表示abc,(abc|def)表示abc、def
\d 数字,等价于[0‐9]
\w 单词字符,等价于[A‐Za‐z0‐9_]
阅读更多
Python网络爬虫--定向爬取中国大学排名

定向爬取中国大学排名

模块设计

目标网站:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html

爬的是2019年的排名,先祭出框架。

1
2
3
4
5
6
7
8
9
10
11
import requests


def getHTMLText(url):
try:
res = requests.get(url)
res.raise_for_status()
res.encoding = res.apparent_encoding
return res.text
except:
return "异常"
阅读更多
Python网络爬虫--BeautifulSoup库

BeautifulSoup库

简单使用

1
2
from bs4 import BeautifulSoup
soup = BeautifulSoup("<p>python</p>","html.parser")
阅读更多
Python网络爬虫--Robots协议

Robots协议

Robots Exclusion Standard,网络爬虫排除标准

这东西搁以前我觉得就是放屁,但是看着一些圈子内的大佬莫名失踪(网安)自己着实对网络法规产生了敬畏。

总的来说,Robots协议是建议,遵不遵守看个人,当不遵守时就会存在法律风险

当然,网站就是为了提供服务的,像新闻这种本来就是给人看的,一个人十秒钟浏览一次,爬虫也可以如此。

所以原则就是:类人行为可不参考Robots协议。

阅读更多
Python网络爬虫--Requests库

Requests库

7个主要方法

方法 说明
requests.request() 构造一个请求,支撑以下各方法的基础方法
requests.get() 获取HTML网页的主要方法,对应于HTTP的GET
requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch() 向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete() 向HTML页面提交删除请求,对应于HTTP的DELETE

与HTTP协议一一对应

阅读更多