自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

盤點一道Python網絡爬蟲中使用正則表達式匹配字符的題目

開發(fā) 前端
本文從實際工作出發(fā),基于Python編程,針對網絡爬蟲過程中得到的字符串,使用正則表達式和字符串處理函數split(),完成了字符串的處理,滿足粉絲的要求。

大家好,我是Python進階者。

一、前言

大家好,我是Python進階者。前幾天在Python交流群里邊有個叫【Arkham】的粉絲問了一個小問題。

一開始還是覺得挺奇怪的,瞅著這個格式十分像是json格式,直接用json提取不香么,但是后來發(fā)現(xiàn)就是這么個格式,而且硬是要提取這個里邊的文本信息。

二、思路

一般的,針對文本提取,正則表達式是首選,十分是方便快捷。

這里給出了兩個方法,感謝【??(這是月亮的背面)】和【數據分析新手-瑜亮】兩位大佬提供的思路。

三、項目實現(xiàn)

這里給大家安排兩種方法,一起來看看吧!文本信息就放這里,大家回頭拿到也可以嘗試練練手。

Top2 26
Top2 "word":"經紀人不得為假唱假演奏提供條件"
Top2 "query":"經紀人不得為假唱假演奏提供條件"
Top2 "show":[]
Top2 "desc":"18日,文旅部發(fā)布關于《演出經紀人員管理辦法(征求意見稿)》公開征求意見的公告。征求意見稿指出,演出經紀人員不得為演員假唱、假演奏提供條件。"
Top2 "img":"https://fyb-1.cdn.bcebos.com/fyb-1//5b4bc1de60744e69f34225af1452a395"
Top2 "url":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E4%B8%8D%E5%BE%97%E4%B8%BA%E5%81%87%E5%94%B1%E5%81%87%E6%BC%94%E5%A5%8F%E6%8F%90%E4%BE%9B%E6%9D%A1%E4%BB%B6&rsv_dl=fyb_news"
Top2 "rawUrl":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E4%B8%8D%E5%BE%97%E4%B8%BA%E5%81%87%E5%94%B1%E5%81%87%E6%BC%94%E5%A5%8F%E6%8F%90%E4%BE%9B%E6%9D%A1%E4%BB%B6"
Top2 "hotScore":"2325661"
Top2 "hotChange":"same"
Top2 "hotTag":"0"
Top2 "appUrl":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA90%E4%BE%9B%E6%9D%A1%E4%BB%B6&rsv"

1、正則表達式

這個方法十分奏效,代碼如下。

# -*- coding: utf-8 -*-
import re
text = """
Top2 26
Top2 "word":"經紀人不得為假唱假演奏提供條件"
Top2 "query":"經紀人不得為假唱假演奏提供條件"
Top2 "show":[]
Top2 "desc":"18日,文旅部發(fā)布關于《演出經紀人員管理辦法(征求意見稿)》公開征求意見的公告。征求意見稿指出,演出經紀人員不得為演員假唱、假演奏提供條件。"
Top2 "img":"https://fyb-1.cdn.bcebos.com/fyb-1//5b4bc1de60744e69f34225af1452a395"
Top2 "url":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E4%B8%8D%E5%BE%97%E4%B8%BA%E5%81%87%E5%94%B1%E5%81%87%E6%BC%94%E5%A5%8F%E6%8F%90%E4%BE%9B%E6%9D%A1%E4%BB%B6&rsv_dl=fyb_news"
Top2 "rawUrl":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E4%B8%8D%E5%BE%97%E4%B8%BA%E5%81%87%E5%94%B1%E5%81%87%E6%BC%94%E5%A5%8F%E6%8F%90%E4%BE%9B%E6%9D%A1%E4%BB%B6"
Top2 "hotScore":"2325661"
Top2 "hotChange":"same"
Top2 "hotTag":"0"
Top2 "appUrl":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E40%E4%BE%9B%E6%9D%A1%E4%BB%B6&rsv"
"""
regex = re.findall(r'":"(.*?)"', text)
for data in regex:
print(data)

運行之后,可以得到想要的結果,如下圖所示。

2、split()

這個方法是來自【??(這是月亮的背面)】大佬的思路,后來我自己寫了小代碼如下。

# -*- coding: utf-8 -*-
import re
text = """
Top2 26
Top2 "word":"經紀人不得為假唱假演奏提供條件"
Top2 "query":"經紀人不得為假唱假演奏提供條件"
Top2 "show":[]
Top2 "desc":"18日,文旅部發(fā)布關于《演出經紀人員管理辦法(征求意見稿)》公開征求意見的公告。征求意見稿指出,演出經紀人員不得為演員假唱、假演奏提供條件。"
Top2 "img":"https://fyb-1.cdn.bcebos.com/fyb-1//5b4bc1de60744e69f34225af1452a395"
Top2 "url":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E4%B8%8D%E5%BE%97%E4%B8%BA%E5%81%87%E5%94%B1%E5%81%87%E6%BC%94%E5%A5%8F%E6%8F%90%E4%BE%9B%E6%9D%A1%E4%BB%B6&rsv_dl=fyb_news"
Top2 "rawUrl":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E4%B8%8D%E5%BE%97%E4%B8%BA%E5%81%87%E5%94%B1%E5%81%87%E6%BC%94%E5%A5%8F%E6%8F%90%E4%BE%9B%E6%9D%A1%E4%BB%B6"
Top2 "hotScore":"2325661"
Top2 "hotChange":"same"
Top2 "hotTag":"0"
Top2 "appUrl":"https://www.baidu.com/s?wd=%E7%BB%8F%E7%BA%AA%E4%BA%BA%E40%E4%BE%9B%E6%9D%A1%E4%BB%B6&rsv"
"""
raw_text = text.strip('\n').split('Top2 ')
for text in raw_text:
print(text.split('":"')[-1].replace('"', ''))

處理起來還是相對費勁的,而且不那么智能,針對文本定制的,比較“死板”,雖然勉強可以實現(xiàn),可是還是不太建議。

四、總結

本文從實際工作出發(fā),基于Python編程,針對網絡爬蟲過程中得到的字符串,使用正則表達式和字符串處理函數split(),完成了字符串的處理,滿足粉絲的要求。

責任編輯:姜華 來源: Python爬蟲與數據挖掘
相關推薦

2023-10-07 08:25:09

Java處理工具正則表達式

2024-12-25 15:09:38

Python字符串函數

2024-10-09 16:35:20

Python正則表達式

2010-07-14 09:01:18

Perl正則表達式

2012-07-27 09:56:36

Google

2009-09-16 16:22:04

正則表達式匹配

2010-03-25 18:25:36

Python正則表達式

2009-08-14 17:44:46

C#中使用正則表達式匹

2009-09-16 17:02:15

正則表達式匹配字符串

2009-09-16 17:38:49

正則表達式匹配任意字符

2010-03-15 16:21:28

Python正則表達式

2023-04-17 19:53:37

編程正則表達式

2010-03-10 18:57:53

Python正則表達式

2009-06-10 13:51:25

Java正則表達式匹配替換

2009-09-16 18:08:14

正則表達式匹配單詞

2009-09-16 13:24:30

PHP正則表達式匹配

2018-09-27 15:25:08

正則表達式前端

2024-09-14 09:18:14

Python正則表達式

2009-04-23 11:24:44

SQL正則表達式查詢

2021-01-27 11:34:19

Python正則表達式字符串
點贊
收藏

51CTO技術棧公眾號