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全棧實戰視頻教程,點擊此處 免費獲取一起進步哦!
有了以上價格數據作爲定價的支撐,想必各位老闆的定價問題也將會迎刃而解,最終希望各位老闆發大財!!!