Python爬取某宝商品数据案例:100页的价格、购买人数等数据
2020-06-23 09:43
525 查看
前言
随着互联网时代的到来,人们更加倾向于互联网购物,某宝又是电商行业的巨头,在某宝平台中有很多商家数据,今天带大家使用python+selenium工具获取这些公开的。
本篇文章适合Python零基础、对爬虫数据采集感兴趣的同学!
环境介绍:
python 3.6
pycharm
selenium
time
selenium简介
自动化测试工具,驱动浏览器帮助我们获取到渲染之后的数据
模仿人的行为操作浏览器(用户行为加上代码逻辑的结合)
安装模块
pip install selenium
步骤
安装Webdriver
打开Google浏览器,点击进入设置界面
进入界面后点击关于Chrome,然后找到你Google浏览器的版本,安装Webdriver要对应浏览器的版本
导入模块
import time import re import csv from selenium import webdriver from selenium.webdriver import ActionChains from 淘宝爬虫 import constans
入口测试代码
def search_product(key): """模拟搜索商品,登陆账户,获取最大页数""" driver.get('http://www.taobao.com') driver.find_element_by_id('q').send_keys(key) # 输入框输入商品关键字 driver.find_element_by_class_name('btn-search').click() # 点击搜索按钮 driver.implicitly_wait(10) # 隐式等待 driver.maximize_window() # 最大化浏览器 def main() search_product(keyword) if __name__ == '__main__': keyword = input('请输入你要查询的商品数据:') driver = webdriver.Chrome() main()
解决登陆和解决滑块验证
driver.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys(constans.USERNAME) # 找到用户名输入账号 time.sleep(1) driver.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys(constans.PASSWORD) # 找到密码框输入密码 time.sleep(2) login = driver.find_element_by_xpath("//span[contains(@class, 'btn_slide')]") # 找到滑动验证码滑块 手写 action = ActionChains(driver) # 创建动作连对象 action.click_and_hold(on_element=login) # 点击滑块维持动作 action.move_by_offset(xoffset=258, yoffset=0) # 设置动作链坐标长度 action.pause(0.5).release().perform() # 设置动作链执行时间 释放鼠标 执行动作链 driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click() # 找到登陆按钮点击 driver.implicitly_wait(10) # 隐式等待
解析数据
def get_product(): for div in divs: info = div.find_element_by_xpath('.//div[@class="row row-2 title"]/a').text # 商品名称 price = div.find_element_by_xpath('.//strong').text + '元' # 商品价格 deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text # 付款人数 name = div.find_element_by_xpath('.//div[@class="shop"]/a').text # 店铺名称 print(info, price, deal, name, sep='|') # 分隔符 with open('data2.csv', 'a', newline='') as csvfile: # newline='' 指定一行一行写入 csvwriter = csv.writer(csvfile, delimiter=',') # delimiter=',' csv数据 1ffa 的分隔符 csvwriter.writerow([info, price, deal, name])
运行代码,效果如下图:
这样就可以获取第一页的数据了
运行代码,效果如下图:
解析页码
page = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text # 找到页码标签 page = re.findall('(\d+)', page)[0] # print('商品页数:', page) return int(page) def main(): """程序的入口""" print('正在爬取第1页的数据') page = search_product(keyword) get_product() page_num = 1 while page_num != page: print('*' * 100) print('正在爬取第{}页的数据'.format(page_num + 1)) print('*' * 100) driver.get('https://s.taobao.com/search?q={}&s={}'.format(keyword, 44 * page_num)) # 拼接产品url地址 driver.implicitly_wait(10) # 浏览器等待方法 get_product() page_num += 1 driver.quit()
最后运行代码,就可以爬取100页的数据了
相关文章推荐
- Python爬取某宝商品数据案例:100页的价格、购买人数等数据
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
- SQLite实现数据持久化存储小案例之购买商品
- SQLite实现数据持久化存储小案例之购买商品
- Python爬取淘宝页面的数据,包含商品名字,价格及地址
- SQLite实现数据持久化存储小案例之购买商品
- Python---购物车更新程序 商品信息存在文件当中,用户购买记录要打印已购商品,余额。卖家可以添加商品,修改价格。
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
- Python 获取新浪财经数据的案例
- Python使用系统聚类方法进行数据分类案例一则
- python淘宝爬虫基于requests抓取淘宝商品数据
- python爬虫数据-下载图片经典案例
- 超强大的Python数据分析课程-偏机器学习方向 Python数据分析经典案例课程
- python爬虫webdriver.Chrome 数据可视化简单案例matplotlib
- 数据科学工程师面试宝典系列之二---Python机器学习kaggle案例:泰坦尼克号船员获救预测
- 11、商品审核导入solr、查询商品高亮显示、过滤查询分类条件、过滤查询品牌条件、item设置动态注解导入含规格的数据、过滤搜索规格搜索、价格搜索、价格升降序、前端面包屑查询条件、分页显示商品
- Python 案例002(获取不同数据区间的和)
- Python爬虫(入门+进阶)学习笔记 1-8 使用自动化神器Selenium爬取动态网页(案例三:爬取淘宝商品)
- Python网络爬虫获取淘宝商品价格