91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python使用正則表達式爬取京東商品信息的方法

發布時間:2020-07-20 11:53:45 來源:億速云 閱讀:204 作者:小豬 欄目:開發技術

這篇文章主要講解了Python使用正則表達式爬取京東商品信息的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

京東(JD.com)是中國最大的自營式電商企業,2015年第一季度在中國自營式B2C電商市場的占有率為56.3%。如此龐大的一個電商網站,上面的商品信息是海量的,小編今天就帶小伙伴利用正則表達式,并且基于輸入的關鍵詞來實現主題爬蟲。

首先進去京東網,輸入自己想要查詢的商品,小編在這里以關鍵詞“狗糧”作為搜索對象,之后得到后面這一串網址:
https://search.jd.com/Search?keyword=%E7%8B%97%E7%B2%AE&enc=utf-8,其實參數%E7%8B%97%E7%B2%AE解碼之后就是“狗糧”的意思。那么非常明顯,只要輸入keyword這個參數之后,將其進行編碼,就可以獲取到我們的目標網址了,請求網頁,得到響應,爾后利用選擇器便可以進行下一步的精準采集了。

在京東網上,狗糧信息在京東官網上的網頁源碼如下圖所示:

Python使用正則表達式爬取京東商品信息的方法

狗糧信息在京東官網上的網頁源碼

話不多說,直接擼代碼,如下圖所示。小編用的是py3,也建議大家以后多用py3版本。通常URL編碼的方式是把需要編碼的字符轉化為%xx的形式,一般來說URL的編碼是基于UTF-8的,當然也有的于瀏覽器平臺有關。在Python的urllib庫中提供了quote方法,可以實現對URL的字符串進行編碼,從而可以進入到對應的網頁中去。

正則表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),是一種可以用于模式匹配和替換的強有力的工具。找到目標網頁之后,調用urllib中的urlopen函數打開網頁并獲取源碼,之后利用正則表達式實現對目標信息的精準采集。

Python使用正則表達式爬取京東商品信息的方法

利用正則表達式實現對目標信息的精準采集

正則表達式寫在這個程序中確實蠻復雜的,也占據了多行,但是主要用到的正則表達式是[\w\W]+?和[\s\S]+?。

[\s\S]或者[\w\W]是完全通配的意思,\s是指空白,包括空格、換行、tab縮進等所有的空白,而\S剛好相反。這樣一正一反下來,就表示所有的字符,完全的,一字不漏的。另外,[]這個符號,表示在它里面包含的單個字符不限順序的出現,比如下面的正則:[ace]*,這表示,只要出現a/c/e這三個任意的字母,都會被匹配。

此外,[\s]表示,只要出現空白就匹配;[\S]表示,非空白就匹配。那么它們的組合,表示所有的都匹配,與它相對應的,有[\w\W]等,意義完全相同。其實,[\s\S] 和 [\w\W]這樣的用法,比"."所匹配的還要多,因為"."是不會匹配換行的,所有出現有換行匹配的時候,人們就習慣 使用[\s\S]或者[\w\W]這樣的完全通配模式。

最后得到的輸出效果圖如下所示:

Python使用正則表達式爬取京東商品信息的方法

輸出效果圖

這樣小伙伴們就可以獲取到狗糧的商品信息了,當然,小編在這里只是拋磚引玉,只匹配了四個信息,而且只是做了個單頁的獲取。需要更多數據的小伙伴們可以自行去更改正則表達式和設置多頁,達到你想要的效果。下篇文章小編將利用美麗的湯BeautifulSoup來進行匹配目標數據,實現目標信息的精準獲取。

最后給大家簡單介紹一下正則表達式。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些匹配某個模式的文本。

正則表達式對于初學者確實晦澀難懂,不過慢慢學習還是可以掌握的,并不一定要完全記下來,但是你要知道什么時候需要什么參數,能做到順利使用它就可以了。

看完上述內容,是不是對Python使用正則表達式爬取京東商品信息的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

忻城县| 赤城县| 沙田区| 天镇县| 西乌珠穆沁旗| 澄江县| 修武县| 前郭尔| 色达县| 南陵县| 黄龙县| 林口县| 仁布县| 浦城县| 河池市| 山东| 柘荣县| 万安县| 彭州市| 迁西县| 佛学| 浮山县| 商都县| 凌海市| 明溪县| 江山市| 肇东市| 延安市| 南雄市| 桦南县| 广宗县| 永宁县| 正阳县| 伊春市| 镇雄县| 修水县| 望谟县| 涟水县| 澄江县| 彰化县| 漳平市|