python抓取京東的商品資訊

2021-10-07 20:40:15 字數 2423 閱讀 6682

1. 安裝python開發環境

2. requests庫  beautifulsoup庫

3. 具備python一定基礎

1. 經過分析可以知道keywork為搜尋關鍵字

2. page引數為篩選商品的頁下標,每頁30條資料

3. ev引數為篩選商品的**引數

1. 我們發現商品的資料是訪問url直接返回來的 所以我們需要分析下商品所在的標籤跟每個商品資訊對應的標籤

2. 發現所有的商品都放在 ul.class = gl-warp這個標籤下,ok我們只需分析處理li 然後遍歷ul逐個獲取即可

1.首先封裝乙個商品類 

class jd_product:

def __init__(self):

#self.img_path = none #商品本地路徑

self.img_url = none #商品url

self.price = none #商品**

self.keyword = #商品關鍵字

self.seller_name = none #賣家名稱

self.seller_url = none #賣家店鋪url

self.tags = #商品標籤

def __repr__(self):

return self.__str__()

def __str__(self):

return '''

**:{}

關鍵字:{}

商品標籤:{}

賣家:{}

'''.format(self.price, self.keyword, self.tags, self.seller_name, self.num_of_comment)

2. 開始用request獲取到頁面資料,重要一點user-agent這些關鍵的引數還是要填充一下,以防被封ip(之前抓58工作崗位的時候沒在意這些細節就被封了 = =)

from bs4 import beautifulsoup

import urllib

keyword = '男衣服' #你可以使用 input輸入關鍵字

url = '' % (urllib.quote(keyword))

host = 'search.jd.com'

headers =

response = requests.get(url, headers=headers)

bs=beautifulsoup(response.content)

ul = find(bs, 'ul', )

jdps =

for i in ul.children:

if not isinstance(i, element.tag):

continue #過濾掉 換行\n

jdp = jd_product()

dimg = find(i, 'div', )

if dimg:

jdp.img_url = find(dimg, 'img')['src']

dprice = find(i, 'div', )

if dprice:

jdp.price = find(dprice, 'i').string

pname = find(i, 'div', )

if pname:

for j in find(pname, 'em').stripped_strings:

pshop = find(i, 'div', )

if pshop:

shop = find(pshop, 'a', {})

if shop:

jdp.seller_name = shop.string

jdp.seller_url = host + shop['href']

pcommit = find(i, 'div', )

if pcommit:

for j in pcommit.stripped_strings:

jdp.num_of_comment += j

picons = find(i, 'div', )

if picons:

for j in picons.stripped_strings:

print(jdps)

結果看圖:

ps:  同樣的**在本地執行可以抓到資料  在我的阿里雲環境上跑 竟然返回跳轉登入介面

用curl驗證一下:

猜想是不是jd粗暴的把阿里雲伺服器的ip給過濾了= =!!

如何利用Xpath抓取京東網商品資訊

html檔案其實就是由一組尖括號構成的標籤組織起來的,每一對尖括號形式乙個標籤,標籤之間存在上下關係,形成標籤樹 xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。京東網 商品 商品資訊在京東官網上的部分網頁原始碼如下圖所示 資訊在京東官網上的網頁原始...

python 爬取京東商品資訊

coding utf 8 import os import re import time from urllib.parse import urlencode import requests from lxml import etree import pymysql from time import...

爬取京東商品資訊

爬取京東商品資訊 from selenium import webdriver from selenium.webdriver import chromeoptions from selenium.webdriver import actionchains from selenium.webdriv...