溫馨提示×

溫馨提示×

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

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

如何利用selenium庫爬取京東python書籍一百頁存入csv

發布時間:2021-10-11 18:36:16 來源:億速云 閱讀:219 作者:柒染 欄目:大數據
# 如何利用Selenium庫爬取京東Python書籍一百頁存入CSV

## 一、環境準備

首先需要安裝必要的Python庫:
```python
pip install selenium pandas

同時需下載對應瀏覽器的WebDriver(如Chrome需下載chromedriver),并將其路徑加入系統環境變量。

二、基礎爬蟲框架搭建

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd
import time

driver = webdriver.Chrome()
base_url = "https://search.jd.com/Search?keyword=Python&page={}&s=1&click=0"

三、頁面數據抓取邏輯

1. 模擬翻頁操作

京東書籍頁面采用動態加載,需模擬滾動操作:

def scroll_page():
    for i in range(1, 5):
        driver.execute_script(f"window.scrollTo(0, {i*500})")
        time.sleep(0.5)

2. 關鍵數據提取

通過XPath定位書籍信息:

def parse_page():
    books = []
    items = driver.find_elements(By.XPATH, '//div[@id="J_goodsList"]//li[@class="gl-item"]')
    
    for item in items:
        title = item.find_element(By.XPATH, './/div[@class="p-name"]/a/em').text
        price = item.find_element(By.XPATH, './/div[@class="p-price"]//i').text
        books.append([title, price])
    return books

四、完整爬取流程

all_books = []
for page in range(1, 101):  # 爬取100頁
    driver.get(base_url.format(page))
    scroll_page()
    all_books.extend(parse_page())
    print(f"已完成第{page}頁抓取")
    time.sleep(2)  # 避免觸發反爬

五、數據存儲處理

使用pandas保存為CSV:

df = pd.DataFrame(all_books, columns=["書名", "價格"])
df.to_csv("jd_python_books.csv", index=False, encoding='utf_8_sig')
driver.quit()

六、反爬應對策略

  1. 隨機延遲:time.sleep(random.uniform(1,3))
  2. 使用代理IP
  3. 設置請求頭:
options = webdriver.ChromeOptions()
options.add_argument('user-agent=Mozilla/5.0')

七、注意事項

  1. 京東頁面結構可能變更,需定期維護XPath
  2. 大規模爬取建議使用分布式架構
  3. 遵守robots.txt協議,控制請求頻率

完整代碼約80行,實際執行需約30-60分鐘完成100頁抓取。建議在非高峰時段運行,并添加異常處理機制保證穩定性。 “`

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女