首頁 >後端開發 >Python教學 >Python爬取京東商品分類與連結

Python爬取京東商品分類與連結

高洛峰
高洛峰原創
2017-02-25 10:05:151976瀏覽

前言

本文主要的知識點是使用Python的BeautifulSoup進行多層的遍歷。

Python爬取京東商品分類與連結

如圖所示。只是一個簡單的哈,不是爬取裡面的隱藏的東西。

範例程式碼

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()

#運行這段程式碼以及達到了我們的目的。

Python爬取京東商品分類與連結

我們來解讀這段程式碼。

首先我們要造訪到京東的首頁。

然後透過BeautifulSoup對存取到的首頁進行解析。

這個時候,我們就要定位元素,來獲得我們需要的東西了。

在瀏覽器中透過F12,我們可以看到下圖所示的東西:

Python爬取京東商品分類與連結

我們來看看下面這句程式碼:

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中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn