前言
本文主要的知識點是使用Python的BeautifulSoup
進行多層的遍歷。
如圖所示。只是一個簡單的哈,不是爬取裡面的隱藏的東西。
範例程式碼
from bs4 import BeautifulSoup as bs import requests headers = { "host": "www.jd.com", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36 Core/1.47.933.400 QQBrowser/9.4.8699.400", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" } session = requests.session() def get_url(): renspned = bs(session.get('http://www.jd.com/',headers = headers).text,'html.parser') for i in renspned.find("p", {"class": "dd-inner"}).find_all("a",{"target":"_blank"}): print(i.get_text(),':',i.get('href')) get_url()
#運行這段程式碼以及達到了我們的目的。
我們來解讀這段程式碼。
首先我們要造訪到京東的首頁。
然後透過BeautifulSoup
對存取到的首頁進行解析。
這個時候,我們就要定位元素,來獲得我們需要的東西了。
在瀏覽器中透過F12
,我們可以看到下圖所示的東西:
我們來看看下面這句程式碼:
for i in renspned.find("p", {"class": "dd-inner"}).find_all("a",{"target":"_blank"})
這一行程式碼完全滿足我們的需求,首先用find
方法,定位到了class=「dd-inner
」的p,然後使用find_all
對該標籤下所有的a標籤。
最後,我想列印出所有的商品分類以及對應的鏈接,於是,我使用了i.get_text()
和i.get('href ')
的方法終於取得了商品分類和對應的連結。
總結
其實不是很難,主要是要用對方法。筆者因為是初學方法沒有用對。花了差不多兩天才搞定。這裡也是告訴大家,可以使用find().find_all()
的方法來進行多層的遍歷。以上就是我利用Python爬取京東的商品分類與連結的一些經驗,希望對大家學習python能有所幫助。
更多Python爬取京東的商品分類與連結相關文章請追蹤PHP中文網!