請教PYTHON正則表達式+爬蟲問題

35 回覆
0 Like 41 Dislike
2024-03-29 00:55:55
老鐵,能發個代碼比我嗎?
2024-03-29 09:18:18
如果佢可以直接用英文 present 埋我會 more impressed

而唔係淨係啲助語詞同連接詞用廣東話
2024-03-29 13:00:17
這個問題發生的原因主要是因為在Python字符串和正則表達式中處理轉義字符的差異,以及如何在HTML或JavaScript中表示字符串。

當你在test字符串中使用'sec_uid":"(.*?)","nickname'這個正則表達式時,它可以正常工作,因為test字符串是直接用Python的字符串語法表示的,沒有額外的轉義。

然而,當你從網頁的HTML或JavaScript代碼中抓取內容時,字符串常常會以不同的形式表示。特別是在JavaScript代碼中,字符串可能被轉義一次或多次,這取決於該字符串是如何被嵌入到代碼中的。在你的例子中,原始的HTML或JavaScript代碼中sec_uid和其他字段可能被表示為sec_uid\\":\\"...\\",\\"nickname,這意味著在這些字段和值之間的引號被轉義了(即前面有額外的\字符)。

因此,當你嘗試在從網頁中獲取的文本(html_text)上應用正則表達式時,你需要使用r'sec_uid\\":\\"(.*?)\\",\\"nickname'這樣的模式來匹配轉義後的引號。這是因為在Python的原始字符串(由前綴r表示)中,反斜線\不會被作為特殊字符處理,這樣可以讓你更容易地匹配包含反斜線的文本模式。

總結來說,之所以需要不同的正則表達式模式來匹配test字符串和html_text,是因為它們在轉義字符方面的表示不同。在處理從網頁抓取的文本時,了解文本中如何表示轉義字符是非常重要的,這將幫助你更準確地構造正則表達式。


幫你問ChatGPT
2024-03-29 13:15:42
2024仲自己寫code
2024-03-29 14:56:02
問ai前都要自己識先
2024-03-29 15:04:03
我早排叫chatgpt 寫幾個python 做web scraping都無睇佢d code。
直接睇result,result錯再叫佢執
2024-03-29 15:13:59
2024-03-29 15:54:19
冇課金CHATGPT4
2024-03-29 21:16:30
你係點樣問法?
我用緊COZE個GPT-4 TURBO 128K
我比網址佢係睇到
叫佢爬蟲佢唔識
只要係HTML入面 script 標籤 有JSON佢都唔識拎
無論REGEX
定係
XPATH比埋佢
都係唔識
2024-03-29 21:22:53
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞