Python01爬虫 - TianYu118/Python GitHub Wiki

一、 基础知识

1.静态爬取

import requests<br>
r = requests.get('http://www.lwxstxt.com/')
print("文本编码:",r.encoding)
print("响应状态:",r.status_code)
print("字符串方式的响应体:",r.text)

说明: (1)r.text是服务器响应的内容,会自动根据响应头部的字符编码进行解码。 (2)r.encoding是服务器内容使用的文本编码。 (3)r.status_code用于检测响应的状态码,如果返回200,就表示请求成功了;如果返回的是404,就表示客户端错误;返回5xx则表示服务器错误响应。我们可以用r.status_code来检测请求是否正 确响应。 (4)r.content是字节方式的响应体,会自动解码gzip和deflate编码的响应数据。 (5)r.json()是Requests中内置的JSON解码器。

2.请求头

import requests
headers = {'User-Agent':'Mozilla.5.0'}
r = requests.get('http://www.lwxstxt.com/',headers=headers)
print("文本编码:",r.encoding)
print("响应状态:",r.status_code)

二、正则表达式

1.一般字符

  • "."匹配任意单个字符(不包括换行符)
  • ""转义字符
  • "[...]字符集 ##2. 预定义字符集
  • \d:匹配一个数字字符
  • \D:匹配一个非数字字符
  • \s:匹配任何空白字符,包括空格、制表符、换页符等
  • \S:匹配任何非空白字符
  • \w:匹配包括下划线的任何字符
  • \W:匹配任何非单词字符。

3.数量词

  • *:匹配前一个字符0或无限次
  • +:匹配前一个字符1或无限次
  • ?:匹配前一个字符0或1次
  • {m}:匹配前一个字符m次
  • {m,n}:匹配前一个字符m至n次

4.边界匹配

  • ^:匹配字符串开头
  • $:匹配字符串结尾
  • \A:仅匹配字符串开头
  • \Z;仅匹配字符串结尾

5. re模块及其方法

search()函数

re模块的search()函数匹配并提取第一个符合规律的内容,返回一个正则表达式对象。

 re.match(pattern,string,flags=0)
  • pattern: 为匹配的正则表达式
  • string:为要匹配的字符串
  • flags:标志位,用于控制正则表达式的匹配方式。

sub()函数

re.sub(pattern,repl,string,count=0,flags=0)
  • pattern为匹配的正则表达式
  • repl为替换的字符串
  • string为要被查找替换的原始字符串
  • counts为模式匹配后替换的最大次数,默认0表示替换所有的匹配
  • flags为标志位,用于控制正则表达式的匹配方式

findall()函数