【Python爬虫】爬取淘宝商品数据——新手教程

大数据时代,

数据收集不仅是科学研究的基石,

更是企业决策的关键。

然而,如何高效地收集数据

成了摆在我们面前的一项重要任务。

本文将为你揭示,

一系列实时数据采集方法,

助你在信息洪流中,

找到真正有价值的信息。

提升方法


今天,我们就用python爬取淘宝上某一商品的数据

Python版本:Python3.6

浏览器:谷歌
一键爬取

目的:爬取淘宝上所有卖高跟鞋的商家的商品名称、商品价格、付款人数、店铺和发货地址,将爬取到的数据保存在data.csv文件中

一、输入关键词和网址

keywords = '高跟鞋'
while 1:try:driver = webdriver.Chrome()breakexcept:time.sleep(1)
driver.get('https://www.taobao.com/')
page = search_product(keywords)

关键词keywords为高跟鞋,while的目的是防止出现因为网不好导致报错。这一部分运行后,会自动打开淘宝官网,并将关键词自动输入。

二、构建存储表格

with open('data.csv','a',newline='') as filecsv:csvwriter = csv.writer(filecsv,delimiter = ',')csvwriter.writerow(['商品名称','商品价格','付款人数','店铺','发货地址'])get_product()page_num = 1

三、爬取每一页的商品数据

while page_num != page:print('正在爬取第'+str(page_num)+'页数据')driver.get('https://s.taobao.com/search?q='+keywords+'&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.2&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s='+str(page_num*44))driver.implicitly_wait(2)                      #浏览器等待 因为爬取速度过快driver.maximize_window()                       #浏览器最大化get_product()page_num = page_num+1def get_product():divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')product = {}product_all = {}with open('data.csv','a',newline='') as filecsv:csvwriter = csv.writer(filecsv,delimiter = ',')for id_product,div in enumerate(divs):product['info'] = div.find_elements_by_xpath('.//div[@class="row row-2 title"]')[0].textproduct['price'] = div.find_elements_by_xpath('.//div[@class="price g_price g_price-highlight"]/strong')[0].text+'元'product['Number_of_people'] = div.find_elements_by_xpath('.//div[@class="deal-cnt"]')[0].textproduct['address'] = div.find_elements_by_xpath('.//div[@class="location"]')[0].textproduct['Shop'] = div.find_elements_by_xpath('//div[@class="shop"]/a/span[2]')[0].text#   with open('data.csv','a',newline='') as filecsv:#       csvwriter = csv.writer(filecsv,delimiter = ',')csvwriter.writerow([product['info'],product['price'],product['Number_of_people'],product['Shop'],product['address']])

page为需要爬取的总页数,在本代码中为所有页码,如果只需要前10页,可手动将其改为10。

driver.implicitly_wait(2) 为页面等待两秒,是为了防止网址发现是爬虫而不让爬取数据。

driver.implicitly_wait(2) 函数为提取每一页商品的具体数据。

最后的保存结果为:


http://www.ppmy.cn/embedded/24359.html

相关文章

Ubuntu Mysql修改密码时遇到的问题

参考: ubuntu18.04 首次登录mysql未设置密码或忘记密码解决方法_ubuntu中mysql设置密码-CSDN博客 1. use mysql; #连接到mysql数据库 2. update mysql.user set authentication_stringpassword(123456) where userroot and Host localhost; #修改密码123456是密码…

⑦ - 产品经理通识指南

📖 该文隶属 程序员:职场关键角色通识宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅

[华为OD] 给航天器一侧加装长方形或正方形的太阳能板 100

给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支 柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。但航天器不同位置的支柱长度 不同,太阳能板的安装面…

通信接口——时钟和信号

前言 所有接口只要抓住三个核心点就能分清:时钟同步和异步,时钟的来源,信号的传输方向。 一、时钟同步和异步 接口之间的交互方式存在多种形式,如果按照是否有公共时钟CLK的参与,可以分为同步传输和异步传输。 同步&…

【酱浦菌-爬虫项目】爬取学术堂论文信息

1. 首先,代码定义了一个名为 url 的变量,它是一个包含三个网址的集合(或者说是一个集合的字典)。这些网址分别是: - ‘http://www.xueshut.com/lwtimu/127966.html’ - ‘http://www.xueshut.com/lwtimu/12…

《C语言深度解剖》(10):数组指针、指针数组和数组指针数组

🤡博客主页:醉竺 🥰本文专栏:《C语言深度解剖》《精通C指针》 😻欢迎关注:感谢大家的点赞评论关注,祝您学有所成! ✨✨💜💛想要学习更多C语言深度解剖点击专栏…

vscode 配置与插件记录

vscode插件 python PythonPython DebuggerruffisortPylanceJupyterJupyter KeymapJupyter Slide ShowJupyter Cell TagsautoDocstring - Python Docstring Generator ruff isort pylance autodocsting 在setting.json里这么配置,这样你保存时就会自动format…

【QT学习】UDP协议,广播,组播

一。Udp详细解释 UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。与TCP相比,UDP不提供可靠性、流量控制、拥塞控制和错误恢复等功能,但由于其简单性和低开销&#x…

YOLOv7原创改进:图像去噪 |一种新颖的双分支残差注意,助力低光照、红外小目标检测 | 2024年最新发表(全网独家首发)

💡💡💡解决什么问题:许多网络不能很好地去除图像采集或传输过程中产生的真实噪声(即空间变异噪声),这严重阻碍了它们在实际图像去噪任务中的应用。 💡💡💡创新点:提出了一种新的双分支残差注意网络用于图像去噪,它具有广泛的模型架构和注意引导特征学习的优点。…

pkpmbs 建设工程质量监督系统 Ajax_operaFile.aspx 文件读取漏洞复现

0x01 产品简介 pkpmbs 建设工程质量监督系统是湖南建研信息技术股份有限公司一个与工程质量检测管理系统相结合的,B/S架构的检测信息监管系统。 0x02 漏洞概述 pkpmbs 建设工程质量监督系统 Ajax_operaFile.aspx接口处存在文件读取漏洞,未经身份认证的攻击者可以利用漏洞读…

【Node.js工程师养成计划】之express框架

一、Express 官网:http://www.expressjs.com.cn express 是一个基于内置核心 http 模块的,一个第三方的包,专注于 web 服务器的构建。 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用&…

Java线程池实战:从零手写到性能优化

1. Java线程池深入剖析与手工实现教程 1.1 Java线程池核心原理 1.1.1 线程池的概念和优势 在Java中,线程是操作系统最基本的执行单元,而线程池是管理线程的一种机制。线程池能够合理地复用线程资源,减少线程创建和销毁的开销,有…

MATLAB基础应用精讲-【数模应用】方差分析(附R语言代码)

目录 前言 几个高频面试题目 ANOVA和Ttest以及Ttest2的区别 几个相关概念 算法原理

智能数据分析平台待修复BUG以及待完成需求

快速跳转:何耳林毕设项目介绍-CSDN博客 BUG 1.个人图标页搜索功能,不能进行搜索 2.用户管理功能头部搜索栏有多余搜索项 3.修改用户权限等信息会影响当前管理用户 待完成需求 1.新增AI问答功能 2.图标页自动刷新功能

目标检测(二阶段)领域,常见词汇

1、Backbone(主干网络) 定义: Backbone是目标检测模型的基础部分,通常是一个预训练的卷积神经网络(如ResNet、VGG、MobileNet等),负责从输入图像中提取多层特征图。这些特征图包含了不同尺度和抽象级别的信…

js ajax初次跨域请求

最近有个页面,要请求第三方的一个api, postman里测试返回结果正常,状态正常 可在php js前端请求,返回错误,取不到任何有用信息,status 0. 没接触过跨域,一直以为第三方接口问题&#xff0c…

【Spring AI】09. ETL 管道

文章目录 ETL PipelineAPI 概述入门指南ETL 接口和实现DocumentReaderJsonReaderTextReaderPagePdfDocumentReaderParagraphPdfDocumentReaderTikaDocumentReader DocumentTransformerTextSplitterTokenTextSplitterContentFormatTransformerKeywordMetadataEnricherSummaryMet…

吴恩达2022机器学习专项课程(一)8.1 过拟合

目录 什么是过拟合?如何解决过拟合?什么是泛化?它跟过拟合有什么关系?过拟合案例线性回归线性回归的欠拟合线性回归较好的拟合线性回归的过拟合 逻辑回归逻辑回归的欠拟合逻辑回归的较好的拟合逻辑回归的过拟合 总结 什么是过拟合…

Ubuntu服务器创建新用户及解决新用户登录Access denied问题

目录 Ubuntu服务器创建新用户及解决新用户登录Access denied问题创建账号步骤创建用户只创建用户添加用户到sudo组 允许账号远程连接重启ssh服务 删除账号要删除用户而不删除用户文件如果要删除并且删除用户的家目录和邮件 查询指令查看所有用户查询特定用户账户信息查看用户组…

基于迁移学习的语义句子分类器(微调一个预训练模型的案例,即迁移学习)

一、任务:基于迁移学习的语义句子分类器 项目介绍:本任务的目的是利用预训练好的模型来微调自己的微软研究释义语料库数据集,实现文本分类的任务,具体是判断两个句子的意思是否相同。在微调阶段,我们将整个模型的参数…