京東(jd.com)是中國最大的自營式電商企業,2023年第一季度在中國自營式b2c電商市場的占有率為56.3%。如此龐大的乙個電商**,上面的商品資訊是海量的,小編今天就帶小夥伴利用正規表示式,並且基於輸入的關鍵詞來實現主題爬蟲。
其實引數%e7%8b%97%e7%b2%ae解碼之後就是「**」的意思。那麼非常明顯,只要輸入keyword這個引數之後,將其進行編碼,就可以獲取到我們的目標**了,請求網頁,得到響應,爾後利用選擇器便可以進行下一步的精準採集了。
在程式設計客棧京東網上,**資訊在京東官網上的網頁原始碼如下圖所示:
**資訊在京東官網上的網頁原始碼
話不多說,直接擼**程式設計客棧,如下圖所示。小編用的是py3,也建議大家以後多用py3版本。通常url編碼的方式是把需要編碼的字元轉化為%xx的形式,一般來說url的編碼是基於utf-8的,當然也有的於瀏覽器平台有關。在python的urllib庫中提供了quote方法,可以實現對url的字串進行編碼,程式設計客棧從而可www.cppcns.com以進入到對應的網頁中去。
正規表示式,又稱正規表示式、正規表示法、正規表示式、規則表示式、常規表示法(英語:regular expression,在**中常簡寫為regex、regexp或re),是一種可以用於模式匹配和替換的強有力的工具。找到目標網頁之後,呼叫urllib中的urlopen函式開啟網頁並獲取原始碼,之後利用正規表示式實現對目標資訊的精準採集。
利用正規表示式實現對目標資訊的精準採集
正規表示式寫在這個程式中確實蠻複雜的,也佔據了多行,但是主要用到的正規表示式是[\w\w]+?和[\s\s]+?。
[\s\s]或者[\w\w]是完全通配的意思,\s是指空白,包括空格、換行、tab縮排等所有的空白,而\s剛好相反。這樣一正一反下來,就表示所有的字yzljxxfb符,完全的,一字不漏的。另外,這個符號,表示在它裡面包含的單個字元不限順序的出現,比如下面的正則:[ace]*,這表示,只要出現a/c/e這三個任意的字母,都會被匹配。
此外,[\s]表示,只要出現空白就匹配;[\s]表示,非空白就匹配。那麼它們的組合,表示所有的都匹配,與它相對應的,有[\w\w]等,意義完全相同。其實,[\s\s] 和 [\w\w]這樣的用法,比"."所匹配的還要多,因為"."是不會匹配換行的,所有出現有換行匹配的時候,人們就習慣 使用[\s\s]或者[\w\w]這樣的完全通配模式。
最後得到的輸出效果圖如下所示:
輸出效果圖
這樣小夥伴們就可以獲取到**的商品資訊了,當然,小編在這裡只是拋磚引玉,只匹配了四個資訊,而且只是做了個單頁的獲取。需要更多資料的小夥伴們可以自行去更改正規表示式和設定多頁,達到你想要的效果。下篇文章小編將利用美麗的湯beautifulsoup來進行匹配目標資料,實現目標資訊的精準獲取。
正規表示式對於初學者確實晦澀難懂,不過慢慢學習還是可以掌握的,並不一定要完全記下來,但是你要知道什麼時候需要什麼引數,能做到順利使用它就可以了。
本文標題: python如何使用正規表示式爬取京東商品資訊
本文位址:
如何使用正規表示式
簡單的說就是對字串的一種匹配規則。在介紹如何使用之前,首先來推薦乙個學習工具,這個 可以練習正規表示式的使用。正規表示式的語法 點,可能看不太清 這個是萬用字元 可以作為任意字元,比如正規表示式為 李.則可以匹配到李四,李五等 w匹配所有的阿拉伯數字 英文大小寫字母和下劃線,w 大寫w 匹配被 w排...
如何使用正規表示式
動態系統 靜態系統在入庫時要更具檔名解析姓名,省份證號,備註等字段。現有入庫指令碼採用正規表示式的方法,方便快捷的解決該問題,1.正規表示式 正規表示式的語法,請參考網路。檔名正規表示式 解析結果 1 142432432432x 張三 在逃犯 jpg 0 9xx 身份證號 142432432432x...
python中如何使用正規表示式
正規表示式,簡稱為 regex,是文字模式的描述方法。python 中所有正規表示式的函式都在 re 模組中,在python中使用正規表示式時都需要匯入re模組,否則就會遇到錯誤訊息 nameerror name re is not defined。一 建立正規表示式物件 向 re.compile ...