Python爬蟲爬取淘寶,京東商品資訊
小編是一個理科生,不善長說一些廢話。簡單介紹下原理然後直接上程式碼。
使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一個框架可以通過pip下載
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/
(注)-i 後面是pip使用臨時清華源下載 比較快 使用pip原來的源很慢所以做了一個換源處理
chromedriver下載地址:http://chromedriver.storage.googleapis.com/index.html找到與自己的谷歌遊覽器對應版本的版本版本對應關係這篇文章裡面有:https://blog.csdn.net/BinGISer/article/details/88559532
京東流程。。。淘寶類似(就是多了一個登入驗證)
一,要找到商場地址:https://www.jd.com/
二,模擬正常的查詢(正常查詢商品步驟:輸入商品名,點選搜尋,下拉檢視商品,點選下一頁檢視更多的商品)怎麼來的我不去做詳細的說明(懶得打字,能用就行,懶得去做文章教人,實在想學習加我扣扣討論)直接上程式碼,能看懂就看,看不懂的可以加扣扣:2511217211一起討論(加好友驗證備註:討論)
爬取京東商品資訊程式碼:
from selenium import webdriver
from time import sleep
import re
import os
# 搜尋商品
def search_products():
# 輸入商品名字
driver.find_element_by_xpath('//*[@id="key"]').send_keys(keyword)
# 點選搜尋
driver.find_element_by_xpath('//*[@class="form"]/button').click()
sleep(10)
token = driver.find_element_by_xpath('//*[@id="J_bottomPage"]/span[2]/em[1]/b').text
# 0代表所有匹配到的數字
token = int(re.compile('(\d+)').search(token).group(1))
# 返回總頁數
return token
# 下拉下滑條,載入資料
def drop_down():
for x in range(1, 11, 2):
sleep(1)
j = x / 10
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
driver.execute_script(js)
# 獲取商品資訊
def get_product():
lis = driver.find_elements_by_xpath('//*[@class="gl-warp clearfix"]/li[@class="gl-item"]')
for li in lis:
price = li.find_element_by_xpath('.//div[@class="p-price"]/strong/i').text + '元'
info = li.find_element_by_xpath('.//div[@class="p-name"]/a/em').text + li.find_element_by_xpath(
'.//div[@class="p-name"]/a').get_attribute('title')
p_commit = li.find_element_by_xpath('.//div[@class="p-commit"]/strong/a').text
p_shopnum = li.find_element_by_xpath('.//div[@class="p-shopnum"]/*').text
p_img = li.find_element_by_xpath('.//div[@class="p-img"]/a/img').get_attribute('src')
print(info, price, p_commit, p_shopnum, p_img, sep='|')
# 翻頁
def next_page():
token = search_products()
num = 1
while (num != token):
driver.get('https://search.jd.com/Search?keyword={}&page={}'.format(keyword, 2 * num - 1))
driver.implicitly_wait(10)
num += 1
drop_down()
get_product()
if __name__ == "__main__":
keyword = input('輸入你想查詢的商品名字:')
driver_path = os.path.abspath(os.path.join(os.getcwd(), "..")) + "/Drive/chromedriver.exe"
driver = webdriver.Chrome(driver_path)
# 視窗最大化,防止資料丟失
driver.maximize_window()
driver.get('https://www.jd.com/')
next_page()
爬取淘寶資訊的程式碼:
from selenium import webdriver
from time import sleep
import re
import os
# 搜尋商品
def search_products():
driver.find_element_by_xpath('//*[@id="q"]').send_keys(keyword)
driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
sleep(10)
token = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text
# 0代表所有匹配到的數字
token = int(re.compile('(\d+)').search(token).group(1))
return token
# 下拉下滑條,載入資料
def drop_down():
for x in range(1, 11, 2):
sleep(1)
j = x / 10
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
driver.execute_script(js)
# 獲取商品資訊
def get_product():
lis = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq "]')
for li in lis:
info = li.find_element_by_xpath('.//div[@class="row row-2 title"]').text
price = li.find_element_by_xpath('.//a[@class="J_ClickStat"]').get_attribute('trace-price') + '元'
deal = li.find_element_by_xpath('.//div[@class="deal-cnt"]').text
image = li.find_element_by_xpath('.//div[@class="pic"]/a/img').get_attribute('src')
name = li.find_element_by_xpath('.//div[@class="shop"]/a/span[2]').text
site = li.find_element_by_xpath('.//div[@class="location"]').text
print(info, price, deal, name, site, image, sep='|')
# 翻頁
def next_page():
token = search_products()
num = 0
while (num != token):
driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, 44 * num))
driver.implicitly_wait(10)
num += 1
drop_down()
get_product()
if __name__ == "__main__":
keyword = input('輸入你想查詢的商品名字:')
driver_path = os.path.abspath(os.path.join(os.getcwd(), ".."))+"/Drive/chromedriver.exe"
driver = webdriver.Chrome(driver_path)
# 視窗最大化,防止資料丟失
driver.maximize_window()
driver.get('https://www.taobao.com/')
next_page()
相關文章
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- 京東商品資訊爬蟲爬蟲
- 爬蟲例項-淘寶頁面商品資訊獲取爬蟲
- [Python3]selenium爬取淘寶商品資訊Python
- Python爬蟲二:抓取京東商品列表頁面資訊Python爬蟲
- python網路爬蟲--爬取淘寶聯盟Python爬蟲
- python 爬蟲實戰專案--爬取京東商品資訊(價格、優惠、排名、好評率等)Python爬蟲
- 爬蟲入門之淘寶商品資訊定向爬取!雙十一到了學起來啊!爬蟲
- python爬蟲——爬取大學排名資訊Python爬蟲
- Python爬蟲,抓取淘寶商品評論內容!Python爬蟲
- python爬蟲--爬取鏈家租房資訊Python爬蟲
- 蘇寧易購網址爬蟲爬取商品資訊及圖片爬蟲
- 小白學 Python 爬蟲(25):爬取股票資訊Python爬蟲
- Java爬蟲-爬取疫苗批次資訊Java爬蟲
- 利用python編寫爬蟲爬取淘寶奶粉部分資料.1Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- [Python3網路爬蟲開發實戰] 7-動態渲染頁面爬取-4-使用Selenium爬取淘寶商品Python爬蟲
- 爬蟲利器Pyppeteer的介紹和使用 爬取京東商城書籍資訊爬蟲
- python爬蟲58同城(多個資訊一次爬取)Python爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 用python編寫的抓京東商品價格的爬蟲Python爬蟲
- Python爬蟲——實戰一:爬取京東產品價格(逆向工程方法)Python爬蟲
- python 爬蟲 爬取 learnku 精華文章Python爬蟲
- python爬蟲--招聘資訊Python爬蟲
- Java基於API介面爬取淘寶商品資料JavaAPI
- Python爬蟲爬取美劇網站Python爬蟲網站
- python爬蟲爬取糗事百科Python爬蟲
- 如何用python爬蟲分析動態網頁的商品資訊?Python爬蟲網頁
- Python爬蟲之小說資訊爬取與資料視覺化分析Python爬蟲視覺化
- [python爬蟲] BeautifulSoup和Selenium簡單爬取知網資訊測試Python爬蟲
- Python爬蟲學習筆記(1)爬取知乎使用者資訊Python爬蟲筆記
- Python爬蟲抓取股票資訊Python爬蟲
- 分散式爬蟲之知乎使用者資訊爬取分散式爬蟲
- 爬蟲實戰(一):爬取微博使用者資訊爬蟲
- 爬蟲01:爬取豆瓣電影TOP 250基本資訊爬蟲
- [python爬蟲] 招聘資訊定時系統 (一).BeautifulSoup爬取資訊並儲存MySQLPython爬蟲MySql
- 淘寶直播彈幕爬蟲爬蟲
- python爬蟲抓取哈爾濱天氣資訊(靜態爬蟲)Python爬蟲