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产品为例进行搜索,如需搜索其他货物,可在源代码中自行替换对应关键词

扫描二维码关注公众号,回复: 11313246 查看本文章
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全栈实战视频教程,点击此处 免费获取一起进步哦!

有了以上价格数据作为定价的支撑,想必各位老板的定价问题也将会迎刃而解,最终希望各位老板发大财!!!

猜你喜欢

转载自blog.csdn.net/qq2539879928/article/details/106613465