日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

京東關鍵詞搜索商品列表的Python爬蟲實戰(zhàn)

? 來源:jf_57394773 ? 作者:jf_57394773 ? 2026-01-04 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

京東關鍵詞搜索商品列表 Python 爬蟲實戰(zhàn)

你想要實現(xiàn)京東關鍵詞搜索商品的爬蟲,我會從合規(guī)聲明、環(huán)境準備、頁面分析、代碼實現(xiàn)、反爬優(yōu)化五個方面展開,幫助你完成實戰(zhàn)項目。

一、前置聲明(重要!)

京東擁有商品數(shù)據(jù)的版權,爬蟲僅可用于個人學習、研究,禁止用于商業(yè)用途、批量爬取造成京東服務器壓力。

遵守京東《用戶協(xié)議》和robots.txt協(xié)議(京東https://www.jd.com/robots.txt明確限制了部分爬蟲行為)。

本實戰(zhàn)僅演示基礎爬蟲思路,爬取頻率極低,避免對平臺造成影響。

二、環(huán)境準備

需要安裝 3 個核心 Python 庫,打開終端執(zhí)行以下命令:

bash

運行

pip install requests beautifulsoup4 fake-useragent

requests:發(fā)送 HTTP 網(wǎng)絡請求,獲取頁面數(shù)據(jù)。

beautifulsoup4:解析 HTML 頁面,提取目標商品信息。

fake-useragent:生成隨機 User-Agent,規(guī)避簡單的反爬檢測。

三、京東搜索頁面分析

搜索 URL 構造:打開京東官網(wǎng),搜索關鍵詞(例如 “Python 書籍”),觀察瀏覽器地址欄,得到搜索 URL 格式:

plaintext

https://search.jd.com/Search?keyword=關鍵詞&enc=utf8&page=頁碼

keyword:需要搜索的商品關鍵詞(需 URL 編碼,requests會自動處理)。

page:商品列表頁碼(京東每頁展示 60 件商品,頁碼為 1、3、5... 奇數(shù)遞增,對應第 1、2、3... 頁)。

商品標簽定位:京東商品列表的核心 HTML 標簽為

,每個該標簽對應一件商品,包含商品 ID、名稱、價格、鏈接、店鋪等信息。

價格特殊說明:京東商品價格采用動態(tài)加載(JS 渲染),直接爬取靜態(tài) HTML 無法獲取準確價格,需單獨請求價格接口或后續(xù)通過 JS 解析補充,本實戰(zhàn)先提取靜態(tài)頁面可獲取的核心信息,再補充價格接口優(yōu)化方案。

四、完整代碼實現(xiàn)(基礎版)

版本 1:基礎爬蟲(提取商品核心信息)

實現(xiàn)功能:指定關鍵詞,爬取第 1 頁商品的商品 ID、商品名稱、商品鏈接、店鋪名稱(價格后續(xù)優(yōu)化)。

python

運行

# 導入所需模塊
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
import time

def get_jd_goods(keyword, page=1):
    """
    爬取京東關鍵詞搜索商品列表
    :param keyword: 搜索關鍵詞
    :param page: 頁碼(默認第1頁)
    :return: 商品信息列表
    """
    # 1. 構造請求參數(shù)
    url = "https://search.jd.com/Search"
    params = {
        "keyword": keyword,
        "enc": "utf8",
        "page": page,  # 京東頁碼為奇數(shù),1=第1頁,3=第2頁,以此類推
        "wq": keyword  # 補充參數(shù),提高請求成功率
    }
    
    # 2. 構造請求頭(規(guī)避簡單反爬)
    ua = UserAgent()
    headers = {
        "User-Agent": ua.random,  # 隨機生成User-Agent
        "Referer": "https://www.jd.com/",  # 來源頁,模擬瀏覽器跳轉
        "Accept-Language": "zh-CN,zh;q=0.9",  # 接受語言
        "Connection": "keep-alive"
    }
    
    try:
        # 3. 發(fā)送GET請求(設置超時,避免卡死;禁止重定向,提高效率)
        response = requests.get(
            url=url,
            params=params,
            headers=headers,
            timeout=15,
            allow_redirects=False
        )
        response.raise_for_status()  # 若請求狀態(tài)碼不是200,拋出異常
        response.encoding = "utf-8"  # 指定編碼,避免中文亂碼
        
        # 4. 解析HTML頁面,提取商品信息
        soup = BeautifulSoup(response.text, "lxml")  # lxml解析器,高效快速
        goods_list = []  # 存儲最終商品信息
        
        # 定位所有商品標簽 
        goods_items = soup.find_all("li", class_="gl-item")
        
        for item in goods_items:
            # 提取商品ID
            goods_id = item.get("data-sku", "未知ID")
            
            # 提取商品名稱
            goods_name_tag = item.find("div", class_="p-name").find("em")
            goods_name = goods_name_tag.get_text(strip=True) if goods_name_tag else "未知名稱"
            
            # 提取商品鏈接
            goods_href_tag = item.find("a", class_="p-img")
            goods_href = "https:" + goods_href_tag.get("href", "") if goods_href_tag else "未知鏈接"
            
            # 提取店鋪名稱
            shop_name_tag = item.find("div", class_="p-shop").find("a")
            shop_name = shop_name_tag.get_text(strip=True) if shop_name_tag else "未知店鋪"
            
            # 組裝商品信息
            goods_info = {
                "商品ID": goods_id,
                "商品名稱": goods_name,
                "商品鏈接": goods_href,
                "店鋪名稱": shop_name
            }
            goods_list.append(goods_info)
            
            # 打印單條商品信息(實時查看進度)
            print(f"已提取商品:{goods_name[:30]}...")
        
        # 5. 模擬人類操作,添加延時(核心反爬手段之一)
        time.sleep(2)
        
        return goods_list
    
    except requests.exceptions.RequestException as e:
        print(f"請求失敗:{e}")
        return []

def save_goods_to_txt(goods_list, keyword):
    """
    將商品信息保存到本地TXT文件
    :param goods_list: 商品信息列表
    :param keyword: 搜索關鍵詞(用于文件名)
    """
    if not goods_list:
        print("無商品信息可保存")
        return
    
    filename = f"京東_{keyword}_商品列表.txt"
    with open(filename, "w", encoding="utf-8") as f:
        f.write(f"京東關鍵詞「{keyword}」商品搜索結果n")
        f.write("-" * 100 + "n")
        for index, goods in enumerate(goods_list, 1):
            f.write(f"第{index}件商品n")
            f.write(f"商品ID:{goods['商品ID']}n")
            f.write(f"商品名稱:{goods['商品名稱']}n")
            f.write(f"商品鏈接:{goods['商品鏈接']}n")
            f.write(f"店鋪名稱:{goods['店鋪名稱']}n")
            f.write("-" * 100 + "n")
    
    print(f"商品信息已成功保存到:{filename}")

# 主函數(shù)調用
if __name__ == "__main__":
    target_keyword = "Python書籍"  # 自定義搜索關鍵詞
    target_page = 1  # 自定義頁碼(奇數(shù))
    
    # 爬取商品信息
    jd_goods = get_jd_goods(keyword=target_keyword, page=target_page)
    
    # 保存到本地
    if jd_goods:
        save_goods_to_txt(goods_list=jd_goods, keyword=target_keyword)
    else:
        print("未爬取到任何商品信息")

版本 2:優(yōu)化版(補充準確價格獲?。?/p>

由于京東靜態(tài)頁面價格為空,需單獨請求價格接口獲取準確價格,優(yōu)化后的核心代碼如下(僅修改價格提取部分):

python

運行

# 新增:獲取商品準確價格的函數(shù)
def get_goods_price(goods_id):
    """
    調用京東價格接口,獲取商品準確價格
    :param goods_id: 商品ID(data-sku)
    :return: 商品價格
    """
    price_url = f"https://p.3.cn/prices/mgets"
    params = {
        "skuIds": f"J_{goods_id}",  # 價格接口需要J_前綴+商品ID
        "type": "1"
    }
    
    headers = {
        "User-Agent": UserAgent().random,
        "Referer": "https://search.jd.com/"
    }
    
    try:
        response = requests.get(price_url, params=params, headers=headers, timeout=10)
        response.raise_for_status()
        price_data = response.json()
        return price_data[0].get("p", "未知價格") if price_data else "未知價格"
    except Exception as e:
        print(f"獲取商品{goods_id}價格失?。簕e}")
        return "未知價格"

# 修改解析部分,添加價格獲取
# 在for item in goods_items: 循環(huán)中,添加:
goods_price = get_goods_price(goods_id)
# 然后在goods_info中補充:
"商品價格": f"{goods_price} 元"

五、反爬策略與注意事項

1. 核心反爬應對措施

隨機 User-Agent:使用fake-useragent生成不同瀏覽器的 UA,避免固定 UA 被識別為爬蟲。

請求延時:通過time.sleep(2)添加 2 秒延時,模擬人類瀏覽節(jié)奏,避免高頻請求。

完整請求頭:補充Referer、Accept-Language等字段,讓請求更接近瀏覽器行為。

避免重定向:設置allow_redirects=False,防止被京東重定向到驗證頁面。

分頁爬取限制:若需爬取多頁,頁碼遞增間隔≥5 秒,且總頁數(shù)不超過 5 頁(僅用于學習)。

2. 常見問題與解決方案

問題 1:中文亂碼。解決方案:指定response.encoding = "utf-8",保存文件時指定encoding="utf-8"。

問題 2:返回空商品列表。解決方案:檢查頁碼是否為奇數(shù)、請求頭是否完整、是否被京東限制(可更換關鍵詞或重啟網(wǎng)絡)。

問題 3:價格接口返回空值。解決方案:增加價格接口請求延時、更換 UA,部分商品需登錄后才能獲取價格(進階需求可使用requests.Session()保持登錄狀態(tài))。

六、后續(xù)擴展方向

數(shù)據(jù)持久化:將商品信息保存到 CSV、Excel 或 MySQL 數(shù)據(jù)庫,方便后續(xù)分析。

多頁爬取:實現(xiàn)自動遍歷多頁(1、3、5...),批量獲取商品列表。

多線程 / 異步爬取:使用threading或aiohttp提高爬取效率(需嚴格控制并發(fā)量,避免反爬)。

商品詳情頁爬取:通過商品鏈接,進一步爬取商品參數(shù)、評價等信息。

反爬進階:處理京東的驗證碼、Cookie 驗證(可使用selenium模擬瀏覽器,但效率較低,僅用于學習)。

總結

京東爬蟲核心是構造合法請求、定位商品標簽、規(guī)避反爬檢測,基礎版可滿足個人學習的信息提取需求。

動態(tài)加載的價格需單獨請求專用接口,這是電商平臺爬蟲的常見特點。

爬蟲的核心原則是 “低調”—— 低頻率、低并發(fā)、非商用,避免觸碰平臺紅線和法律邊界。

本實戰(zhàn)的代碼可直接運行,修改target_keyword即可爬取不同商品,運行后會在當前目錄生成 TXT 格式的商品列表文件。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    2481

    瀏覽量

    67059
  • python
    +關注

    關注

    58

    文章

    4889

    瀏覽量

    90327
  • 京東
    +關注

    關注

    2

    文章

    1130

    瀏覽量

    50142
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    0基礎入門Python爬蟲實戰(zhàn)

    ,爬蟲功不可沒。通過爬蟲,可以從知乎、微博爬取熱門話題,篩選優(yōu)質答案,分析用戶偏好;從淘寶、京東爬取商品、評論及銷量數(shù)據(jù),分析用戶消費場景;從51job、智聯(lián)招聘爬取職位信息,分析各行
    發(fā)表于 07-25 09:28

    搜索關鍵詞獲取商品詳情接口的設計與實現(xiàn)

    原理、設計、代碼實現(xiàn)和優(yōu)化。內容基于真實開發(fā)實踐,確保技術可靠性。 1. 接口需求與原理 用戶輸入關鍵詞(如“智能手機”),接口需返回匹配的商品列表,每個商品包含ID、名稱、價格、描述
    的頭像 發(fā)表于 10-20 15:37 ?646次閱讀
    <b class='flag-5'>搜索</b><b class='flag-5'>關鍵詞</b>獲取<b class='flag-5'>商品</b>詳情接口的設計與實現(xiàn)

    淺談京東關鍵詞

    格式的字符串)。 關鍵詞搜索結果的關聯(lián)性 :關鍵詞的精準度決定爬取結果的相關性,京東搜索會對關鍵詞
    的頭像 發(fā)表于 01-04 10:40 ?1288次閱讀

    京東關鍵詞item_search-按關鍵搜索京東商品

    京東關鍵詞搜索(item_search)技術實現(xiàn)指南:合規(guī) API 調用 + 數(shù)據(jù)運營實戰(zhàn) 京東商品關鍵
    的頭像 發(fā)表于 01-06 09:27 ?1377次閱讀

    京東關鍵詞API賦能

    的「關鍵詞搜索數(shù)據(jù)」轉化為選品、運營、競品監(jiān)控、定價策略的決策依據(jù),實現(xiàn)從 “經(jīng)驗驅動” 到 “數(shù)據(jù)驅動” 的業(yè)務升級。結合電商技術開發(fā)、運營優(yōu)化的實際需求,本文從 四大核心賦能場景、實戰(zhàn)落地流程、進階升級方案 三個維度,拆解
    的頭像 發(fā)表于 01-07 09:53 ?889次閱讀

    京東關鍵詞搜索接口獲取商品數(shù)據(jù)的實操指南

    京東關鍵詞搜索接口獲取商品數(shù)據(jù) 實操指南 本指南聚焦 京東開放平臺合規(guī)接口 (item_search基礎版 / item_search_pro增強版),提供 從賬號準備→接口調用→數(shù)據(jù)
    的頭像 發(fā)表于 01-07 13:56 ?452次閱讀

    京東關鍵詞的應用場景

    京東關鍵詞在 API 層面的應用,是串聯(lián) 商品檢索、數(shù)據(jù)運營、商業(yè)決策、工具開發(fā) 的核心紐帶,結合京東開放平臺 API(如商品查詢、聯(lián)盟推廣、數(shù)據(jù)統(tǒng)計類接口),其應用場景覆蓋電商全鏈路
    的頭像 發(fā)表于 01-08 13:38 ?828次閱讀

    京東關鍵詞 API 場景的需求梳理模板

    京東關鍵詞 API 場景需求梳理模板 本模板適用于 聯(lián)盟推廣、商家運營、工具開發(fā)、市場分析 等基于京東關鍵詞 API 的業(yè)務需求梳理,可直接用于需求文檔撰寫、API 對接方案評審。 核心模塊 填寫項
    的頭像 發(fā)表于 01-08 13:45 ?290次閱讀

    京東關鍵詞搜索商品列表Python實戰(zhàn)

    一、實現(xiàn)思路分析 URL 構造 :京東搜索 URL 格式為 https://search.jd.com/Search?keyword=關鍵詞q=0.9", "Connection
    的頭像 發(fā)表于 01-09 10:34 ?1176次閱讀

    京東關鍵詞API接口獲取

    你想要獲取京東關鍵詞相關的 API 接口,以此替代傳統(tǒng)爬蟲,更合規(guī)、穩(wěn)定地獲取商品列表等信息,我會先講解 官方合規(guī)的 API 獲取與使用方式 (推薦),再說明非官方接口的情況(僅供學習
    的頭像 發(fā)表于 01-09 14:16 ?982次閱讀

    使用京東關鍵詞搜索接口獲取商品數(shù)據(jù)的實操指南

    一、接口接入前期準備 使用京東關鍵詞搜索接口前,需完成京東開放平臺的賬號認證、應用創(chuàng)建及權限申請,這是獲取合法調用資格的基礎,也是保障接口穩(wěn)定調用的前提。 (一)注冊并認證開發(fā)者賬號 1. 訪問
    的頭像 發(fā)表于 01-12 11:46 ?629次閱讀

    京東關鍵詞API帶來的收益

    京東關鍵詞 API 能從降本增效、增收提效、合規(guī)風控三大維度為電商商家、聯(lián)盟推廣者等帶來顯著收益,核心是通過結構化、實時化的合規(guī)數(shù)據(jù),驅動運營決策與業(yè)務自動化,實現(xiàn)銷售增長、成本優(yōu)化與風險降低
    的頭像 發(fā)表于 01-14 14:18 ?316次閱讀

    京東關鍵詞的應用

    京東關鍵詞應用核心是圍繞搜索匹配與流量獲取,貫穿商品上架、搜索優(yōu)化、付費推廣、精細化運營等全鏈路,以精準匹配用戶需求、提升排名與轉化為目標。以下是具體應用與實操方法: 一、
    的頭像 發(fā)表于 01-20 09:05 ?932次閱讀

    關鍵詞搜索京東列表 API 技術對接指南

    一、前言 在電商數(shù)據(jù)服務、代購集運系統(tǒng)搭建、電商平臺競品分析、自有商城商品同步等業(yè)務場景中,京東商品列表的精準、實時獲取是核心環(huán)節(jié)之一。 二、接口概述
    的頭像 發(fā)表于 02-05 16:36 ?558次閱讀

    從踩坑到高效落地:關鍵詞搜索京東商品列表 API 的實操心得

    京東商品列表 API 是獲取京東平臺商品數(shù)據(jù)的核心接口,支持關鍵詞搜索、分類篩選、價格區(qū)間、銷量
    的頭像 發(fā)表于 03-11 13:29 ?728次閱讀
    峨山| 兰考县| 志丹县| 马龙县| 山东省| 鹤山市| 广德县| 丰宁| 石台县| 凤阳县| 文登市| 讷河市| 都江堰市| 搜索| 门头沟区| 汝南县| 共和县| 楚雄市| 京山县| 潞西市| 金阳县| 荔浦县| 丹江口市| 沙洋县| 耿马| 德保县| 凤台县| 屏东市| 武城县| 龙州县| 林芝县| 济南市| 梨树县| 鄂伦春自治旗| 丹寨县| 中牟县| 门头沟区| 涪陵区| 宜春市| 肃宁县| 舒城县|