【Python】手把手教你用selenium爬取某东月饼数据

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 本期我们使用Pycharm+python3.7.9+selenium实现对京东月饼等信息的爬取,爬取信息不限于月饼,可以是京东上所有在销商品

前言

工欲善其事,必先利其器
本期我们使用Pycharm+python3.7.9+selenium实现对京东月饼等信息的爬取,爬取信息不限于月饼,可以是京东上所有在销商品

selenium(WEB自动化测试工具)

Selenium 1() 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla FirefoxSafariGoogle ChromeOpera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .NetJavaPerl等不同语言的测试脚本。
# selenium安装

selenium下载地址
## 选择和电脑对应的版本下载即可
image.png

## 安装selenium
解压到python安装根目录下

image.png
# 正文

实例化一个浏览器对象

driver = webdriver.Chrome()
driver.get('https://www.jd.com')

定义搜索的关键字

打开浏览器会发现URL的格式

image.png

搜索功能

def get_product(key):
    # 定位到搜索框
    driver.find_element_by_css_selector('#key').send_keys(keyword)
    # 定位到搜索按钮
    driver.find_element_by_css_selector('.button').click()
    # 防止超时,等待加载,设置为10S
    driver.implicitly_wait(10)
    # 最大化浏览器效果

解决图片懒加载

# 解决懒加载
def drop_down():
    for x in range(1,11,2):
        time.sleep(0.5)
        # 控制翻页
        j = x / 10
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)

解析商品数据

image.png
通过定位发现,商品都有gl-item属性

拿到商品集合

# 解析商品数据
def parse_product():
    # 拿到商品集合
    lis = driver.find_elements_by_css_selector('.gl-item')

解析商品名称

image.png
通过定位发现,商品名称在p-name下的em标签中

# 解析商品数据
def parse_product():
    # 拿到商品集合
    lis = driver.find_elements_by_css_selector('.gl-item')

    for li in lis:
      try:
        # 商品名称
        product_name = li.find_element_by_css_selector('div.p-name a em').text

解析商品价格

image.png
通过定位发现,商品价格在p-price下的i标签中

# 解析商品数据
def parse_product():
    # 拿到商品集合
    lis = driver.find_elements_by_css_selector('.gl-item')

    for li in lis:
      try:
        # 商品名称
        product_name = li.find_element_by_css_selector('div.p-name a em').text
        # 商品价格
        product_price = li.find_element_by_css_selector('div.p-price strong i').text + '元'

解析商品评价数量

image.png
通过定位发现,商品价格在p-commit下的a标签中

# 解析商品数据
def parse_product():
    # 拿到商品集合
    lis = driver.find_elements_by_css_selector('.gl-item')

    for li in lis:
      try:
        # 商品名称
        product_name = li.find_element_by_css_selector('div.p-name a em').text
        # 商品价格
        product_price = li.find_element_by_css_selector('div.p-price strong i').text + '元'
        # 商品评价数量
        product_comment =  li.find_element_by_css_selector('div.p-commit strong a').text

解析店铺名称

image.png
通过定位发现,商品价格在span下的a标签中

# 解析商品数据
def parse_product():
    # 拿到商品集合
    lis = driver.find_elements_by_css_selector('.gl-item')

    for li in lis:
      try:
        # 商品名称
        product_name = li.find_element_by_css_selector('div.p-name a em').text
        # 商品价格
        product_price = li.find_element_by_css_selector('div.p-price strong i').text + '元'
        # 商品评价
        product_comment =  li.find_element_by_css_selector('div.p-commit strong a').text
        # 店铺名称
        product_shop_name = li.find_element_by_css_selector('span.J_im_icon a').text

       #打印数据 
       print(product_shop_name,product_price,product_comment,product_shop_name)

解析数据保存到csv文件

  with open('data_jd.csv',mode='a',encoding='utf-8',newline='') as f:
      csv_write = csv.writer(f)
      csv_write.writerow([product_name,product_price,product_name,product_shop_name])
except Exception as e:
 print(e)

总结

到最后,本期教程完成了爬取京东月饼销售数据的操作,并保存到csv文件,搜索不仅限于月饼,也可用于其他商品。
image.png

PS:本文所爬取的数据无任何敏感数据,此教程仅供学习使用,严谨从事非法活动,法网恢恢疏而不漏。

相关文章
|
1天前
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
打造高效的Web Scraper:Python与Selenium的完美结合
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
6天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据
|
1月前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
2月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
2月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
305 10
|
3月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
92 3
|
3月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
154 0

热门文章

最新文章

推荐镜像

更多