跟隨B站波波老師學爬蟲(二) 正規表示式

2021-10-13 15:56:02 字數 3382 閱讀 2075

---練習正規表示式的小**

1、.表示除了換行符以外的任何單個字元

例如我們想找到拜字前面的字元

2、*表示重複匹配任意次包括0次

例如我們想找到,後面的全部字元,他就會匹配從,開始的全部字元

3、+表示重複匹配任意次,不包括0次,需要跟*區別開,那麼同樣的例子,用+會有什麼結果呢,是一樣的結果,但是我們看下面這個例子就能體會不一樣的地方了。

如果沒有,+就不會匹配到字元,如果是*就可以匹配到因為*包含0次,+不包含0次

4、{}匹配指定出現的次數,、x,表示x字元連續出現的次數至少m次,至多n次

5、貪婪模式和非貪婪模式

貪婪模式:盡可能多的匹配,例如:*、+

非貪婪模式:精準匹配,例如:.+?

例如:我們想匹配下面所有的html標籤內容

source = 'title'
1)如果用<.>呢,我們發現他是盡可能多的匹配到所有並且都列印了

2)我們再來看看.*?,我們就可以分別匹配到了,這就是簡單乙個例子體會貪婪模式和非貪婪模式

6、轉義符\

如果我們想匹配下面欄位.前面的字元

按照之前的學的內容來看,匹配到的內容是不對的,是因為.*等這些字元是元字元,我們需要轉義符/,所以更改後結果是

7、匹配某種字元型別

8、方括號匹配幾個字元之一

9、^ 這個字元表示文字開頭位置,如果正規表示式設定為單行模式、表示匹配整個文字的開頭位置,多行模式,匹配文字每行的開頭位置

10、$表示匹配文字的結尾位置,如果正規表示式設定為單行模式、表示匹配整個文字的結尾位置,多行模式,匹配文字每行的結尾位置

11、|表示匹配其中之一

12、()-分組

例如我們想從文字中提取每個人的姓名和對應手機號:

13、字串切割spit()、replace()

---需求拆解

回顧資料解析的步驟:

1)指定標籤的定位

2)標籤或者標籤對應屬性中儲存的資料進行提取(解析)

2、通過正規表示式解析出原始碼中src值,通過findall方法取出並存在列表中

---思考?這樣我們就獲取到了第一頁的資料,但是如果想獲取到所有頁面的資料,怎麼辦呢?

6、我們發現我們跳轉頁面,url後面的引數只有page,跟著page的具體是第幾頁,所以我們可以設定個變數,在通過迴圈呼叫我們想爬取多少頁,就可以多少頁啦,最後的結果直接附上波波老師教導下的完整**嘍

import requests

import re

import os

if __name__ == '__main__':

# 建立資料夾儲存所有

if not os.path.exists('./qiutulibs'):

os.mkdir('./qiutulibs')

url = ''

# 對應爬取所有頁碼的資料

# page/13/

# 設定乙個通用的url的模板

url1 = 'page/%d/'

headers = {

for page_num in range(1, 3):

new_url = format(url1 % page_num)

print(new_url)

# 使用聚焦爬蟲,爬取所有

# 如何從當前原始碼解析到image標籤對應的src的值? 經過分析 抽取class=thumb

page_text = requests.get(url=url1, headers=headers).text

ex = '.*?

# re.s 多行

image_src_list = re.findall(ex, page_text, re.s)

# print(image_src_list)

for src in image_src_list:

# 拼接出乙個完整的url

# 獲取二進位制資料,請求到了的二進位制資料

image_data = requests.get(url=src, headers=headers).content

# 進行持久化儲存

src_name = src.split('/')[-1]

imgpath = './qiutulibs/' + src_name

with open(imgpath, 'wb') as fp:

fp.write(image_data)

爬取B站彈幕

最近幾天學習爬蟲,便爬取了b站的彈幕,本篇博文記錄的是爬取彈幕的方法一,近期會更新方法二。下面是流程 點開這個包是這個形式的 這裡面就有明文的彈幕,但通過requests獲得的response是經過utf 8編碼加密過的,想要獲得彈幕內容還要解密。下面附 from bs4 import beauti...

爬蟲專欄6 爬取B站彈幕

比如說這裡我隨便開乙個網頁 在xhr標籤裡面可以看到乙個小眼睛圖示的玩意兒,開啟那個url進去之後 就可以直接提取了 ps 1.針對匹配,乙個尖括號結束之後最好用.過渡到另乙個尖括號,不要什麼都不加,可能抓不出來 2.這是針對response.text和response.content.decode...

python爬取B站彈幕學習筆記

然後開啟檢查,選擇net 這個位址就是存放彈幕的檔案 接下來我們之間用request模組去get文字,beautifulsoup去處理獲取文字,然後匯入到詞云 匯入擴充套件庫 import re 正規表示式庫 import collections 詞頻統計庫 import numpy as np n...