Python爬蟲解析後內容獲取 re模組

2021-10-01 11:18:19 字數 2904 閱讀 5849

re.findall(正則匹配的格式,匹配的物件)
1.^

只匹配開頭在多行模式中匹配每一行的開頭

2.a|b

匹配的格式a或者b

領域:web開發,爬蟲,資料分析,資料探勘,人工智慧

零基礎到專案實戰,7天學習上手做專案 3

4.$a$ 匹配已a 結尾的

5..

代表任意字元

6.{}

7.*代表前面字元0-無窮大個

8.+代表前面字元1-無窮大個

9.?

10.特殊序列符號

特殊序列符號

意義\a

只在字串開始進行匹配(多行字串值匹配第一行)

\z只在字串結尾進行匹配(多行字串只匹配最後一行)

\b匹配位於開始或結尾的空字串

\b匹配不位於開始或結尾的空字串

\d相當於[0-9]

\d相當於[^0-9]

\s匹配任意空字元:[\t\n\r\r\v]

\s匹配任意非空字元:[^\t\n\r\r\v]

\w匹配任意數字和字母:[a-za-z0-9]

\w匹配任意非數字和字母:[^a-za-z0-9]

11.()

括號裡面什麼到時候取什麼

12.re.findall(正則匹配的格式,匹配的物件,re.s)

re.s的作用:

不使用re.s時,則只在每一行內進行匹配,如果存在一行沒有,就換下一行重新開始,使用re.s引數以後,正規表示式會將這個字串看做整體,在整體中進行匹配

import re

a = """sdhellolsdlfsdfiooe:

yy988989pythonafsf"""

b = re.findall('hello(.*?)python',a)

c = re.findall('hello(.*?)python',a,re.s)

print (b)

print(c)

輸出結果:

b:c:['lsdlfsdfiooe:\nyy988989']

其他引數

修飾符描述

re.i

使匹配對大小寫不敏感

re.l

做本地化識別(locale-aware)匹配

re.m

多行匹配,影響 ^ 和 $

re.s

使 . 匹配包括換行在內的所有字元

re.u

根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b.

re.x

該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解

# match 和 search的區別,mathch從開頭開始匹配找乙個,search搜尋所有找第乙個
定義某種搜尋格式

res1 = re.compile('\d+')

res1.findall(查詢物件)等同於re.findall('\d+',查詢物件)

就是字串的split方法,區別是可以使用正規表示式去替換
就是字串的replace方法,區別是可以使用正規表示式去替換

import re

s = '豬八戒的媳婦是1高翠蘭,孫悟空的媳婦是2白骨精,唐僧的媳婦是3女兒國王,沙悟淨6沒有媳婦(py9的學生們)'

print(re.sub('\d','',s))

print(re.subn('\d','',s)) # 除了會修改內容,還會返回修改了多少次

豬八戒的媳婦是高翠蘭,孫悟空的媳婦是白骨精,唐僧的媳婦是女兒國王,沙悟淨沒有媳婦(py的學生們)

('豬八戒的媳婦是高翠蘭,孫悟空的媳婦是白骨精,唐僧的媳婦是女兒國王,沙悟淨沒有媳婦(py的學生們)', 5)

語法

意義說明

「.」任意字元

「^」字串開始

『^hello』匹配』helloworld』而不匹配』aaaahellobbb』

「$」字串結尾

與上同理

「*」0 個或多個字元(貪婪匹配)

<*>匹配<\title>chinaunix

「+」1 個或多個字元(貪婪匹配)

與上同理

「?」0 個或多個字元(貪婪匹配)

與上同理

*?,+?,??

以上三個取第乙個匹配結果(非貪婪匹配)

<*>匹配<\title>

對於前乙個字元重複m到n次,亦可

a匹配6個a、a匹配2到4個a

?對於前乙個字元重複m到n次,並取盡可能少

『aaaaaa』中a只會匹配2個

「」特殊字元轉義或者特殊序列

表示乙個字符集

[0-9]、[a-z]、[a-z]、[^0]""

或(…)

匹配括號中任意表示式

(?#…)

注釋,可忽略

(?=…)

matches if … matches next, but doesn』t consume the string.

『(?=test)』 在hellotest中匹配hello

(?!..)

matches if … doesn』t match next.

『(?!=test)』 若hello後面不為test,匹配hello

(?<=…)

matches if preceded by … (must be fixed length).

『(?<=hello)test』 在hellotest中匹配test

(?matches if not preceded by … (must be fixed length).

『(?

Python爬蟲 獲取貼吧內容

參考寫的第乙個比較完整的python爬蟲程式。coding utf 8 import urllib import urllib2 import re 處理頁面標籤類 class tool 去除img標籤,7位長空格 removeimg re.compile 刪除超連結標籤 removeaddr re...

爬蟲 解析內容 xpath

from lxml import etree text harry potter 29.99 learning xml 39.95 print type text 將字串轉化為element物件 html etree.html text print html print type html 將ele...

爬蟲 解析內容 jsonpath

import json dump 把json字串寫入檔案 load 讀取檔案中的json物件 dumps 把python物件轉換為json字串 loads 把json字串轉換為python物件 da lao list filepath dict str python物件 json字串 result ...