Python使用selenium自动爬取苏宁易购商品数据

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

环境介绍:

  • python 3.8

  • pycharm 专业版

  • selenium

  • 谷歌浏览器

  • 浏览器驱动

selenium:

人是怎么操作浏览器的 那么代码就怎么写

代码思路

  1. 开启一个浏览器 (谷歌)

  2. 输入链接地址 打开网页

  3. 提取数据

  4. 保存数据

代码展示

导入模块

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
import csv

写表头

with open('suning.csv', mode='w', newline='', encoding='utf-8') as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow(['title', 'price', 'comment', 'store', 'href'])
  1. 开启一个浏览器 (谷歌)
driver = webdriver.Chrome()
  1. 输入链接地址 打开网页
driver.get('https://search.suning.com/%E7%94%B5%E8%A7%86/?safp=d488778a.homepagev8.gSearch.5&safc=hotkeyword.0.0&safpn=10001')
for page in range(20):

3.1 让页面往下滚动

    # document.querySelector("body > div.ng-footer > div.ng-s-footer").scrollIntoView()
    driver.execute_script('document.querySelector("body > div.ng-footer > div.ng-s-footer").scrollIntoView()')
    time.sleep(2)

3.2 提取数据

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
    items = driver.find_elements(By.CSS_SELECTOR, '.item-bg')
    for item in items:
        title = item.find_element(By.CSS_SELECTOR, '.title-selling-point').text
        price = item.find_element(By.CSS_SELECTOR, '.price-box').text
        comment = item.find_element(By.CSS_SELECTOR, '.evaluate-old.clearfix').text
        store = item.find_element(By.CSS_SELECTOR, '.store-stock').text
        href = item.find_element(By.CSS_SELECTOR, '.title-selling-point a').get_attribute('href')
        print(title, price, comment, store, href)
        # 写数据
        with open('suning.csv', mode='a', newline='', encoding='utf-8') as f:
            csv_writer = csv.writer(f)
            csv_writer.writerow([title, price, comment, store, href])
    # 点击下一页
    driver.execute_script('document.querySelector("#nextPage").click()')
# 阻塞
input()

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/290539.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年需要关注的主要AI趋势

文 | BFT机器人 在2023年的时候,很少一部分专家预测人工智能将对IT、业务和整个世界产生影响。在2024年的伊始,是时候期待新的一年以及关注了解一下2024年AI进步的趋势了。 大模型助力人工智能 2024年的AI趋势将是ChatGPT等大型语言模型(LLM…

每日算法打卡:递归实现组合型枚举 day 4

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例:输出样例: 题目分析示例代码优化 原题链接 93. 递归实现组合型枚举 题目难度:简单 题目来源:《算法竞赛进阶指南》 题目描述 从 1∼n 这 n 个整数中随机选出 m 个…

前端项目打包并部署

一、vue项目打包 1.1 方式一:vue项目命令行打包 在当前项目路径下,执行命令 npm run build 在当前项目路径下,生成 一个dist文件夹。 将来部署项目,是部署的dist这个文件。 1.2 方式二:使用vue ui打包项目 在终端中…

离线部署的MinIO

网络有不同的部分,例如 DMZ、公共、私有、堡垒等。这实际上取决于您的组织和网络要求。在部署应用程序时,任何应用程序,我们都需要考虑类型以及它是否需要位于网络的特定部分。 例如,如果要部署数据库,则不希望它位于…

Hubery-个人项目经历记录

研究生期间很有幸的进入到了崔老师的组,从此也就进入到了分析人体生理信号的领域,充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目,这里蕴含着我各种美好的回忆,也作为一个展示自己的平台吧。 开始之前&#xff…

CSS效果(工作中常用)

1、css文字溢出省略号 overflow: hidden; // 溢出隐藏 text-overflow: ellipsis; // 溢出用省略号显示 white-space: nowrap; // 规定段落中的文本不进行换行 overflow: hidden; // 溢出隐藏 text-overflow: ellipsis; // 溢出用省略…

磁盘管理------逻辑卷、磁盘配额

目录 引导语: 一、逻辑卷 (一)逻辑卷的概念 (二)建立逻辑卷 1.新建磁盘 2.创建物理卷 3.创建卷组 4.创建逻辑卷 5.挂载 6.使用分区创建逻辑卷 (三)磁盘扩容 1.创建新的物理卷 2.扩容…

everything 本地文件搜索工具 完胜WIndows搜索 速度99% 超级给力

"Everything" 是一个 Windows 平台上的免费软件,它是一款功能强大的本地文件搜索工具。它允许用户在计算机上快速而准确地搜索文件和文件夹。以下是一些 "Everything" 的主要特点: 实时搜索: "Everything" 提供…

U盘数据恢复软件,高效恢复数据记好这2款!

“我的u盘用了很久了,有时候会遇到u盘数据丢失的情况。想问问大家有什么比较好用的u盘数据恢复软件可以推荐吗?” 在Windows电脑上,U盘已成为我们存储和传输数据的常用设备。然而,由于各种原因,U盘中的数据可能会丢失或…

arm64操作系统LLVM源码编译

编译electron需要对应版本的LLVM编译器,因此需要构建arm64版本的LLVM。构建过程如下。 一、编译环境 需要cmake版本大于3.20,因此需要更新cmake cmake源码下载地址:Download CMake Download CMake 下载后解压编译 tar -zxvf cmake-3.28.1.tar.gz cd cmake-3.28.1 mkdir…

计算机毕业设计------基于SpringCloud的实验室管理系统

项目介绍 实验室管理系统的用户可以分为两种:系统管理员和普通用户。系统管理员主要功能: 登录登出、分析数据、管理用户、管理日志、管理实验室、管理预约、维护个人资料、实验室保修管理 用户主要功能: 注册登录、查询实验室、实验室预约…

大数据开发的专业术语

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项…

C语言中指针变量如何使用

一、指针变量的定义与声明 1.1 定义 指针变量是用来存储另一个变量的内存地址的变量。在C语言中,指针变量的类型是指向某个类型的指针。例如,int *p; 表示一个整型指针变量p。 1.2 声明 指针变量的声明分为两种形式,一种是直接声明&#…

高管换防,年度销量缺口较大,朱华荣掌舵的阿维塔前路在何方?

高管换防下,阿维塔的压力依然不小。 阿维塔前任CEO谭本宏曾将汽车行业的角逐比喻为一场全程马拉松,“有的人开始跑的很快,结果跑到15公里就被迫下场,就是因为节奏和动作变形”。在他看来,设立合理的目标与发展节奏&am…

.cer格式证书文件和 .pfx格式证书文件有什么区别?

这里我们将讨论.cer和.pfx文件类型之间的差异。 什么是数字证书? 数字证书在电子通信中用作验证身份的密码机制。我们需要这些证书来建立安全的在线通信渠道,并确保数字数据的隐私、真实性和正确性。 数字证书包括主题(实体详细信息&#xf…

阿里云PolarDB数据库不同配置租用价格表

阿里云数据库PolarDB租用价格表,云数据库PolarDB MySQL版2核4GB(通用)、2个节点、60 GB存储空间55元5天,云数据库 PolarDB 分布式版标准版2核16G(通用)57.6元3天,阿里云百科aliyunbaike.com分享…

【IP-Adapter】进阶 - 同款人物【2】 ☑

测试模型:###最爱的模型\flat2DAnimerge_v30_2.safetensors [b2c93e7a89] 原图: 加入 control1 [IP-Adapter] 加入 control 2 [OpenPose] 通过openpose骨骼图修改人物动作。 加入 control 3 lineart 加入cotrol3 …

PostgreSQL 分区

由于大量数据存储在数据库同一张表中,后期性能和扩展会受到影响。所以需要进行表分区,因为它可以将大表分成较小的表,从而减少内存交换问题和表扫描,最终提高性能。庞大的数据集被分成更小的分区,更易于访问和管理。 …

静态网页设计——电影角(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 使用技术:HTMLCSSJS 主要内容:本网页主要利用HTML语言编写,简要介绍世界上一些主要国家,例如,中,…
最新文章