日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬虫实战:使用Selenium爬取京东宝贝信息

發布時間:2024/9/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫实战:使用Selenium爬取京东宝贝信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有些頁面數據是采用Ajax獲取的,但是這些Ajax接口參數比較復雜,可能會加入加密秘鑰。對于這種頁面,最方便的方法是通過selenium??梢杂肧elenium來模擬瀏覽器操作,抓取京東商品信息。
網頁分析

今天用Selenium模擬瀏覽器來爬取信息。

輸入框id為q

在Chrome瀏覽器中,選擇搜索按鈕,審查元素,找到搜索按鈕所在位置,右鍵,選擇copy,選擇copy seletor 即可選擇搜索按鈕的css
本次選擇結果為#search > div > div.form > button

輸入寶貝名字:如內衣
然后網頁拉到頁末
同理找到頁末100頁的css路徑
#J_bottomPage > span.p-skip > em:nth-child(1) > b

如圖發現,每個商品都是一個Li標簽。提取li標簽css路徑(ul包含所有商品)
css路徑為#J_goodsList > ul > li

driver.find_elements_by_css_selector('#J_goodsList > ul > li')

得到的是 li:nth-child(1), li:nth-child(2)…

提取商品信息如提取名字,選擇某一商品的名字得到的css路徑為
#J_goodsList > ul > li:nth-child(1) > div > div.p-name.p-name-type-2 > a > em
我們應修改為div > div.p-name.p-name-type-2 > a > em

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author: yudengwu(余登武) # @Date : 2021/2/18 #@email:1344732766@qq.com from selenium import webdriver import time import csv import redef search_product(key):driver.find_element_by_id('key').send_keys(key)driver.find_element_by_css_selector('#search > div > div.form > button').click()# 瀏覽器窗口最大化driver.maximize_window()time.sleep(3)# 找到頁數的標簽page = driver.find_element_by_css_selector('#J_bottomPage > span.p-skip > em:nth-child(1) > b').textpage = re.findall('(\d+)', page)[0]return int(page) def get_product():lis = driver.find_elements_by_css_selector('#J_goodsList > ul > li')#for li in lis:# 商品名稱info = li.find_element_by_xpath('div/div[4]/a/em').text# 商品價格price = li.find_element_by_css_selector('div > div.p-price > strong > i').text + "元"#評價數evaluate=li.find_element_by_css_selector('div > div.p-commit > strong').text# 店鋪名稱name = li.find_element_by_css_selector('div > div.p-shop > span > a').text#圖片超鏈接photo=li.find_element_by_css_selector('div > div.p-img > a > img').get_attribute('src')print(info, price, evaluate,name,photo,sep='|')with open('京東商品.csv', 'a', newline="") as fp:csvwriter = csv.writer(fp, delimiter=',')csvwriter.writerow([info, price, evaluate,name,photo])def main():print('正在爬取第一頁數據')page = search_product(keyword)get_product()page_num = 1#while page_num != page:print('-*-' * 10)print('正在爬取第{}頁的數據'.format(page_num + 1))print('*-*' * 10)driver.get('https://search.jd.com/Search?keyword={}&wq={}&page={}&s=116&click=0'.format(keyword,keyword, page_num))# 瀏覽器等待方法driver.implicitly_wait(2)# 最大化瀏覽器driver.maximize_window()get_product()page_num += 1if __name__ == '__main__':keyword = input("請輸入你要商品的關鍵字:")path='D:\chromedriver_win32\chromedriver.exe'#驅動目錄driver = webdriver.Chrome(path)driver.get('https://www.jd.com/?cu=true&utm_source=c.duomai.com&utm_medium=tuiguang&utm_campaign=t_16282_137005883&utm_term=5b4355c849464534ae6a958b61187471')main()

換一種商品試試

我們可以抓取京東上的所有商品


總結

以上是生活随笔為你收集整理的爬虫实战:使用Selenium爬取京东宝贝信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。