Python——批量獲取某寶商品價格

00 前情提要

最近,地攤經濟突然火了一把,微博上各種相關的段子也是層出不窮。

在這裏插入圖片描述
我靈機一動,地攤經濟好是好,可是買什麼東西呢?價格該怎麼定位呢?
價格太高,別人懟你淘寶上是你價格的一半,你個黑心商家!!!
價格太低,自己又覺得費了這麼大工夫,賺頭又不大,簡直是個可憐弟弟!!!

所以,我需要用大量的數據來給自己適當的定價參考,如果我能夠檢索淘寶上10000件某個寶貝的定價,不管是取平均值還是取衆數,都能給我提供很大的參考價值。

說幹就幹!!!


01 實現背景

1、某寶搜索寶貝頁面:https://uland.taobao.com/sem/tbsearch,我們獲取價格的數據來源

2、selenium模塊,用於模仿用戶對瀏覽器的任意操作

3、Pyquery模塊,用於解析獲取到的網頁內容

4、time模塊,配合selenium模塊用於定時刷新頁面



02 實現目標

首先利用selenium模塊模仿瀏覽器點擊淘寶搜索頁面的網頁鏈接,再通過Pyquery模塊進一步篩選搜索結果,獲取貨物價格等關鍵信息



03 注意事項

1、源代碼以iphone x產品爲例進行搜索,如需搜索其他貨物,可在源代碼中自行替換對應關鍵詞

KEYWORD='iphone x'

2、某寶網站由於 反爬蟲機制,若長期未登錄情況下搜索,將被禁止搜索。所以我們需要在登錄情況下進行搜索

3、如需將獲取內容輸入到本地文件,可自行利用with…open操作


04 實現源碼

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from urllib.parse import quote
from pyquery import PyQuery #解析器,可以配合各種爬蟲庫,用於解析頁面
import time

KEYWORD='iphone x'   #設定檢索的關鍵字爲iphone x
browser = webdriver.Chrome('C:\\Users\\Dell\\Desktop\\Python\\chromedriver.exe')  #需事先下載chrome瀏覽器的核心控制模塊,然後定位到此處
wait = WebDriverWait(browser,10)  #頁面刷新時間設置爲10s

def crawl_page(page):
	try:          #使用try...except...差錯控制,避免程序異常終止
		url = 'https://s.taobao.com/search?q='+quote(KEYWORD) #訪問到淘寶搜索頁面,但先得淘寶掃碼登錄
		browser.get(url)

		time.sleep(5)

		if page > 1:
			page_box = wait.until(
			EC.presence_of_element_located(
					(By.CSS_SELECTOR,'.input.J_Input')
				)
			)
			submit_button = wait.until(
			EC.element_to_clickable(
					(By.CSS_SELECTOR,'.btn.J_Submit')
				)
			)
			page_box.clear()
			page_box.send_keys(page)
			submit_button.click()

		wait.until(
			EC.presence_of_element_located(
					(By.CSS_SELECTOR,'.m-itemlist .items .item ')
				)
			)

		get_products()
	except:
		crawl_page(page)

def get_products():
	html = browser.page_source
	doc = PyQuery(html)   #用pyquery解析頁面內容
	items = doc('#mainsrp-itemlist .items .item').items()
	price_list=[]
	for item in items:
		product = {
		#'img' : item.find('.img').attr('data_src'),
		'price' : item.find('.price').text(),
		'deal' : item.find('.deal-cnt').text(),
		'title' : item.find('.title').text(),
		#'shop' : item.find('.dsrs').text(),
		'location':item.find('.location').text()
		}
		#print(product)
		price_list.append(product)

	for i in range(100):
		print(price_list[i])
	#for i in range(len(price_list)):
		#with open('price.txt','a+') as file:
			#file.write(price_list[i])
	

crawl_page(1)



05 實現效果

源代碼界面

在這裏插入圖片描述


運行後,Chrome瀏覽器受控件控制會自動跳轉到淘寶登錄界面,這裏我們選擇掃碼登錄即可

在這裏插入圖片描述
登錄成功後,控件會幫助我們跳轉到帶有關鍵字iphone x的搜索界面

在這裏插入圖片描述


此時,python程序已經開始獲取相關關鍵信息

在這裏插入圖片描述

注意:光理論是不夠的,在此送大家一套2020最新Python全棧實戰視頻教程,點擊此處 免費獲取一起進步哦!

有了以上價格數據作爲定價的支撐,想必各位老闆的定價問題也將會迎刃而解,最終希望各位老闆發大財!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章