# 如何利用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"
京東書籍頁面采用動態加載,需模擬滾動操作:
def scroll_page():
for i in range(1, 5):
driver.execute_script(f"window.scrollTo(0, {i*500})")
time.sleep(0.5)
通過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()
time.sleep(random.uniform(1,3))
options = webdriver.ChromeOptions()
options.add_argument('user-agent=Mozilla/5.0')
完整代碼約80行,實際執行需約30-60分鐘完成100頁抓取。建議在非高峰時段運行,并添加異常處理機制保證穩定性。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。