【实战】Python爬虫获取某电商网站的商品信息

news/2024/5/13 23:15:55/文章来源:https://blog.csdn.net/qq_41775769/article/details/113815617

基于的是selenium谷歌驱动程序的自动化模拟登录,爬取的数据可以根据用户自己的需求进行选择,比如:商品的类型(由于搜素引擎展示给用户的界面数据都是大同小异的)、需要爬取商品的页数,都由用户自己指定。

注意:模拟登录采用的方式是用户扫码。
爬取到的商品信息包括:

  • 商品的金额
  • 购买人数
  • 商铺地址
  • 商品名称
  • 商品图片

Python爬虫源代码:

"""导入需要用到的包
"""
import time
from bs4 import BeautifulSoup
from selenium import webdriver
# 浏览器等待
from selenium.webdriver.support.ui import WebDriverWait
from urllib.request import urlretrieve
import os# 定义淘宝商品信息抓取类
class Taoabo_Info:# 重写构造方法def __init__(self):# https://login.taobao.com/member/login.jhtmlurl = ''# 声明类属性self.url = urlself.browser = webdriver.Chrome(executable_path='D:\pycodes\Crawler\chromedriver.exe')self.wait = WebDriverWait(self.browser,10)# 编辑淘宝数据抓取的函数逻辑"""1.登录淘宝2.首页3.指定商品的搜索信息4.提取指定商品的金额、购买人数、商铺地址、商品名称、商品图片"""def login_info(self):# 1.打开网页self.browser.get(self.url)# 2.通过扫码的形式去登录淘宝账号if self.browser.find_element_by_xpath('//*[@id="login"]/div[1]/i'):self.browser.find_element_by_xpath('//*[@id="login"]/div[1]/i').click()# 让程序等待休眠5秒,通过手机扫码登录time.sleep(8)# 3.点击淘宝网首页taobao_index = self.browser.find_element_by_xpath('//*[@id="J_SiteNavHome"]/div/a')taobao_index.click()time.sleep(1)# 4.自动的在淘宝首页中输入自己想要搜索的商品名称,并且自动点击搜索search_input = self.browser.find_element_by_xpath('//*[@id="q"]')shop_name = input("请输入你想搜索的商品名称:")search_input.send_keys(shop_name)time.sleep(0.5)search_submit = self.browser.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button')search_submit.click()# 5.获取商品信息"""先创建一个文件夹存储爬取的商品图片"""os.makedirs("imgs", exist_ok=True)page = self.browser.page_sourcesoup = BeautifulSoup(page,'lxml')shop_data_list = soup.find('div',class_='grid g-clearfix').find_all_next('div',class_='items')# 二次提取:声明几个局部变量去临时存储商品数据shop_name_list = []shop_price_list = []shop_people_list = []shop_location_list = []pic_name_list = []# 商品的页面号page_num = 1total_num = int(input("你需要爬取商品的页数:"))while page_num != total_num:for shop_data in shop_data_list:# 商品名称shop_image_data = shop_data.find_all('div',class_='pic')for shop_data_a in shop_image_data:shop_data_a = shop_data_a.find_all('a',class_='pic-link J_ClickStat J_ItemPicA')for shop_img in shop_data_a:shop_name = shop_img.find_all('img')[0]['alt']url = 'http:' + shop_img.find_all('img')[0]['data-src']pic_name = url.split('/')[-1]path = 'imgs\{}'.format(pic_name)urlretrieve(url, path)# 将商品名称和图片名存储在列表中shop_name_list.append(shop_name)pic_name_list.append(pic_name)# 商品金额shop_price_data = shop_data.find_all('div', class_='price g_price g_price-highlight')for shop_price in shop_price_data:shop_price_list.append(shop_price.text.strip())# 购买人数shop_people_number_data = shop_data.find_all('div','deal-cnt')for shop_people_number in shop_people_number_data:shop_people_list.append(shop_people_number.text)# 店铺地区shop_location_data = shop_data.find_all('div','location')for shop_location in shop_location_data:shop_location_list.append(shop_location.text)page_num = page_num + 1self.browser.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/ul/li[8]/a').click()page = self.browser.page_sourcesoup = BeautifulSoup(page, 'lxml')shop_data_list = soup.find('div', class_='grid g-clearfix').find_all_next('div', class_='items')shop_data = zip(shop_name_list,shop_price_list,shop_people_list,shop_location_list,pic_name_list)for data in shop_data:print(data)print(len(shop_name_list))if __name__ == '__main__':taobao = Taoabo_Info()taobao.login_info()

数据展示——直接在控制台打印输出:
在这里插入图片描述
其中图片存储的地址是在同样路径下的imgs文件夹中。
在这里插入图片描述
笔者表示也很奇怪,为什么我输入的关键字【汽车】却推荐给我的都是二手车,可能淘宝内部的用户画像或者推荐系统计算得出笔者的经济能力有限,不足以购买更加优质的汽车吧。所以保存下来的图片都是一些旧二手车的。

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

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

相关文章

从Facebook上市看“社交网站效应”

自今年2月初美国社交网站Facebook(脸谱)向美国证券交易委员会递交IPO申请后,外界对于Facebook上市的关注度持续升温,由于登录美国证券交易委员会网站查看Facebook招股书的人数过多,该网站甚至一度瘫痪。 顶着最大互联网IPO的光环,…

在线招聘网站开发截图(企业模块)

企业主页 添加或修改企业信息 上传招聘文章 企业申请权限(查看学生等。。) 查看学生信息 查看详细信息: 未经允许,不允转载

百度与谷歌SEO的10大区别

百度和谷歌的SEO优化到底有什么区别?这个问题是客户或者SEO新手们最常问的热门问题之一,可大部分的时候我们得到的答案就像:百度和谷歌SEO基本没有什么区别;只要专注于内容,做好链接,完善用户体验,排名自然会上去。可…

网站统计中的数据收集原理及实现

网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理&#xf…

浅谈大型网站的算法和架构(1)

上个月老大给我们讲解了"浅谈大型网站的算法和架构",获益匪浅。由于篇幅太多(光数据结构大概就有20多种),我也没有办法一下全部吸收,故我边理解,边分章节与大家分享。 AD: 序 上个月…

十大恶劣的网站体验

对于电子商务网站来说,用户的浏览体验至关重要,只有做好了用户体验,才会有用户乐于购买你的产品,然而,很多网站设计师却往往在用户体验上犯一些低级错误,今天,笔者就列举十个典型的网站设计中的…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

Godaddy网站SSL证书安装

先购买证书,输入绑定域名,下载证书(里面有个cert文件) 1.登录您的 GoDaddy 账户,并打开您的产品(共享主机或者商务主机)。 2.单击 cPanel Admin(cPanel 管理员)。 3.在 S…

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(一) 整理基础数据

最近碰巧发现一款比较好的Web即时通讯前端组件,layim,百度关键字即可,我下面要做的就是基于这个前端组件配合后台完成即时聊天等功能。当然用到的技术就是ASP.NET SingalR框架。本人不会css和前端的东西,只会少量的js,…

职高c语言试卷下载网站,C语言职高对口升学周考试卷

C语言职高对口升学周考试卷 (14页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!14.9 积分湖南省2016年普通高等学校对口招生考试计算机应用类专业综合知识模拟试卷时量:150分钟&#xf…

三角形旋转css_网站前端开发之CSS制作小图标

网站的应用可以展示和提升企业的形象,让用户更加清晰明了的理解企业所表达的,达到宣传企业和品牌的目的,构成一种网络沟通的渠道。便利于企业管理人员对用户的管理,节约了成本,同时还能及时的反馈用户的信息&#xff0…

限制服务器访问指定网站,用访问控制列表限制访问指定网站

最近经常有同事打“小报告”,埋怨网速越来越慢,并且领导也“深有同感”的意思,这下子问题必须得解决了,不然等“领导很生气”的时候,肯定就“后果很严重”了。先是Sniffer嗅探分析流量,然后是“明查暗访”&…

vue 自动生成器_超4K+基于Vue.js超快速创建现代化网站gridsome

使用Vue.js,webpack和Node.js等现代工具构建网站,从NPM中获得热重载和访问任何包,并在您喜欢的预处理器(如SASS或更少的自动预处理)中编写CSS。。使用任何CMS或数据源获取内容。从WordPress,Contentful,local Markdown…

m180n 如何设置网络打印_「hp彩色打印机」惠普m180n打印机怎么设置彩色打印? - seo实验室...

hp彩色打印机惠普m180n需要手动设置打印彩色的文件,找到属性选项,然后选择颜色项,将出现的彩色打印打钩,然后点确定,就可以了,下面我们就来看看详细的教程。1、一般彩色打印机默认就是按照文件的色彩设置进…

网站克隆

setoolkit 使用setoolkit工具:setoolkit 选择1,社会工程学攻击 选择2,Web攻击向量 选择3,认证信息获取攻击方法 若选择1,SET将提供Web模板:google、twitter等 这里我们选择2,网站克隆 注&a…

云服务器可以放网站程序吗,云服务器可以放网站程序吗

云服务器可以放网站程序吗 内容精选换一换企业主机安全服务主要包含资产管理、漏洞管理、入侵检测、基线检查和网页防篡改功能。资产管理功能可深度扫描出主机中的账号、端口、进程、Web目录、软件信息和自启动任务,在资产管理界面,您可以统一管理主机中…

等保2.0,网站信息系统安全等级保护流程你知道吗?

随着信息技术的发展和网络安全形势的变化,等保1.0已无法有效应对新的安全风险和新技术应用所带来的新威胁。为适应新技术的发展,解决云计算、物联网、移动互联和工控领域信息系统的等级保护工作的需要,由公安部牵头组织开展了信息技术新领域等…

网站被攻击怎么处理,快速解决方法

网站被攻击怎么处理,如何快速解决?当网站被攻击,先要了解网站攻击的类型,网站攻击一般分为3类,分别为ARP欺骗攻击、CC攻击、DDOS流量攻击。 ​网站攻击类型一:ARP欺骗攻击 ARP欺骗又称ARP毒化或ARP攻击&am…

公司网站被攻击如何解决?超级科技教你解决网站被攻击的方法

公司网站被攻击如何解决?据悉,美国最大的燃油管道运营公司科洛尼尔公司(Colonial Pipeline)被黑客攻击,导致美国多个管道被关闭。受到燃油管道关闭影响,美国弗吉尼亚州州长拉尔夫-诺瑟姆(Ralph …

如何保护WordPress网站免受网络攻击?采取安全措施至关重要

如果您拥有WordPress网站,那么本文适合您,因为它解决了WordPress的安全性并防止了网络攻击。WordPress是一个广泛使用的CMS(内容管理系统),为所有可用网站的很大一部分提供支持。不幸的是,它也吸引了利用平…