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程序已经开始获取相关关键信息
有了以上价格数据作为定价的支撑,想必各位老板的定价问题也将会迎刃而解,最终希望各位老板发大财!!!
- 点赞
- 收藏
- 关注作者
评论(0)