用selenium爬取淘宝商品信息!听说这个项目值五百?

【爬虫实战】03使用Selenium爬取淘宝商品数据 是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。所以说,如果用 Selenium 来驱动浏览器加载网页的话,就可以直接拿到 JavaScript 渲染的结果了,不用担心使用的是什么加密系统。欢迎关注,共同探讨,共同进步!为了模拟人为进行操作,我们需要控制滚动条的移动,我们使用selenium执行js脚本的方法,来控制滚动条。请勿用于商业用途,请勿高频长时间访问服务器,请勿用于网络攻击,请勿恶意窃取信息,请勿用于作恶。 阅读详情

1.附上效果图 

 

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

2.淘宝网址https://www.taobao.com/ 
3.先写好头部

 

browser = webdriver.Chrome()
wait = WebDriverWait(browser,20)#设置等待时间为20秒
url ='https://www.taobao.com/'
keyword = 'python爬虫'#关键词
data_list = []#设置全局变量来存储数据

4.先找到搜索框并用selenium模拟点击(发现需要登录,我直接扫码登录,没有写模拟登录的过程)

def search():
    try:
        browser.get(url)#获取网页
        input = wait.until(EC.presence_of_element_located((
            By.XPATH,'//*[@id="q"]'
        )))#等到输入框加载出来
        button = wait.until(EC.element_to_be_clickable((
            By.XPATH,'//*[@id="J_TSearchForm"]/div[1]/button'
        )))#等到搜索框加载出来
        input.send_keys(keyword)#输入关键词
        button.click()#模拟鼠标点击
        total = wait.until(EC.presence_of_element_located((
            By.XPATH,'//*[@id="mainsrp-pager"]/div/div/div/div[1]'
        ))).text#等到python爬虫页面的总页数加载出来
        total = re.sub(r',|,','',total)#发现总页数有逗号
        #数据清洗,将共100页后面的逗号去掉,淘宝里的是大写的逗号
        print(total)
        totalnum = int(re.compile('(\d+)').search(total).group(1))
        # 只取出100这个数字
        print("第1页:")
        get_data()#获取数据(下面才写到)
        return totalnum
    except TimeoutError:
        search()


5.获取商品信息,在这里我发现前几个会有淘宝的掌柜热卖的广告,属性和其他的不一样,我就用item从上往下数的第几个的方法找到他们

def get_data():
    try:
        lis = browser.find_elements_by_xpath('//div[@class = "items"]/div[@data-category="auctions"]')
        for i in range(len(lis)):
            name = browser.find_elements_by_xpath('.//div[@class="pic"]/a[@class="pic-link J_ClickStat J_ItemPicA"]/img')[i].get_attribute('alt')
            #获取书名,我是从图片那里的属性获取的书名,比较方便
            shopname = browser.find_elements_by_xpath('.//div[@class="shop"]/a[@class="shopname J_MouseEneterLeave J_ShopInfo"]/span[2]')[i].text
            #获取店铺名
            price = browser.find_elements_by_xpath('.//div[@class="price g_price g_price-highlight"]/strong')[i].text
            #获取价格
            paynum = browser.find_elements_by_xpath('.//div[@class="deal-cnt"]')[i].text
            #获取付款人数

            data_dict={}#定义一个字典存储数据
            data_dict["name"] = name
            data_dict["shopname"] = shopname
            data_dict["price"] = price
            data_dict["paynum"] = paynum
            print(data_dict)#输出这个字典
            data_list.append(data_dict)#将数据存入全局变量中
    except TimeoutError:
        get_data()

 


6.翻页方法,对比1,2,3页网址,发现只有q和s的属性有用,q是搜索,s是商品数,只需要填写这2个属性,用修改s的属性的方式翻页

def next_page():
    totalnum = search()#获取总页数的值,并且调用search获取第一页数据
    num = 1#初始为1,因为我第一页已经获取过数据了
    while num !=3:#这里我偷懒只爬取了3页
    # while num != totalnum - 1:#首先进来的是第1页,共100页,所以只需要翻页99次
        print("第%s页:" %str(num+1) )
        browser.get('https://s.taobao.com/search?q=python爬虫&s={}'.format(44 * num))
        #用修改s属性的方式翻页
        browser.implicitly_wait(10)
        #等待10秒
        get_data()#获取数据
        time.sleep(3)
        num +=1#自增

7.存储方法

def save():
    content = json.dumps(data_list, ensure_ascii=False, indent=2)
    # 把全局变量转化为json数据
    with open("taobao.json", "a+", encoding="utf-8") as f:
        f.write(content)
        print("json文件写入成功")

    with open('taobao.csv', 'w', encoding='utf-8', newline='') as f:
        # 表头
        title = data_list[0].keys()
        # 声明writer
        writer = csv.DictWriter(f, title)
        # 写入表头
        writer.writeheader()
        # 批量写入数据
        writer.writerows(data_list)
    print('csv文件写入完成')

8.调用函数

def main():
    next_page()
    save()


if __name__ == '__main__':
   main()

9.最后附上完整代码,因为爬取的是淘宝,我也不敢多爬

import time
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import re
import json
import csv

browser = webdriver.Chrome()
wait = WebDriverWait(browser,20)#设置等待时间为20秒
url ='https://www.taobao.com/'
keyword = 'python爬虫'#关键词
data_list = []#设置全局变量来存储数据

def search():
    try:
        browser.get(url)#获取网页
        input = wait.until(EC.presence_of_element_located((
            By.XPATH,'//*[@id="q"]'
        )))#等到输入框加载出来
        button = wait.until(EC.element_to_be_clickable((
            By.XPATH,'//*[@id="J_TSearchForm"]/div[1]/button'
        )))#等到搜索框加载出来
        input.send_keys(keyword)#输入关键词
        button.click()#模拟鼠标点击
        total = wait.until(EC.presence_of_element_located((
            By.XPATH,'//*[@id="mainsrp-pager"]/div/div/div/div[1]'
        ))).text#等到python爬虫页面的总页数加载出来
        total = re.sub(r',|,','',total)#发现总页数有逗号
        #数据清洗,将共100页后面的逗号去掉,淘宝里的是大写的逗号
        print(total)
        totalnum = int(re.compile('(\d+)').search(total).group(1))
        # 只取出100这个数字
        print("第1页:")
        get_data()#获取数据(下面才写到)
        return totalnum
    except TimeoutError:
        search()


def get_data():
    try:
        lis = browser.find_elements_by_xpath('//div[@class = "items"]/div[@data-category="auctions"]')
        for i in range(len(lis)):
            name = browser.find_elements_by_xpath('.//div[@class="pic"]/a[@class="pic-link J_ClickStat J_ItemPicA"]/img')[i].get_attribute('alt')
            #获取书名,我是从图片那里的属性获取的书名,比较方便
            shopname = browser.find_elements_by_xpath('.//div[@class="shop"]/a[@class="shopname J_MouseEneterLeave J_ShopInfo"]/span[2]')[i].text
            #获取店铺名
            price = browser.find_elements_by_xpath('.//div[@class="price g_price g_price-highlight"]/strong')[i].text
            #获取价格
            paynum = browser.find_elements_by_xpath('.//div[@class="deal-cnt"]')[i].text
            #获取付款人数

            data_dict={}#定义一个字典存储数据
            data_dict["name"] = name
            data_dict["shopname"] = shopname
            data_dict["price"] = price
            data_dict["paynum"] = paynum
            print(data_dict)#输出这个字典
            data_list.append(data_dict)#将数据存入全局变量中
    except TimeoutError:
        get_data()

def next_page():
    totalnum = search()#获取总页数的值,并且调用search获取第一页数据
    num = 1#初始为1,因为我第一页已经获取过数据了
    while num !=3:#这里我偷懒只爬取了3页
    # while num != totalnum - 1:#首先进来的是第1页,共100页,所以只需要翻页99次
        print("第%s页:" %str(num+1) )
        browser.get('https://s.taobao.com/search?q=python爬虫&s={}'.format(44 * num))
        #用修改s属性的方式翻页
        browser.implicitly_wait(10)
        #等待10秒
        get_data()#获取数据
        time.sleep(3)
        num +=1#自增



def save():
    content = json.dumps(data_list, ensure_ascii=False, indent=2)
    # 把全局变量转化为json数据
    with open("taobao.json", "a+", encoding="utf-8") as f:
        f.write(content)
        print("json文件写入成功")

    with open('taobao.csv', 'w', encoding='utf-8', newline='') as f:
        # 表头
        title = data_list[0].keys()
        # 声明writer
        writer = csv.DictWriter(f, title)
        # 写入表头
        writer.writeheader()
        # 批量写入数据
        writer.writerows(data_list)
    print('csv文件写入完成')

def main():
    next_page()
    save()


if __name__ == '__main__':
   main()

这个真值五百吗?哪有这种单子,都给我吧!嘿嘿嘿

此文转载文,著作权归作者所有如有侵权联系小编删除!

 

【爬虫】python使用selenium抓取淘宝中的商品数据 前言 最近因为项目需要又得抓一批数据,和之前的scrapy不同,这次选择使用selenium来爬取。两种方法的区别如下: scrapy之类的库是基于网络请求来爬取的,也就是直接向目标服务器发送http请求,在这个过程中需要自己构造请求字段也就是json格式的request body。 selenium一类的库是基于自动化测试的,我们只需要知道想要访问的链接就好,其它的(异步加载图片、信息之类的)交给浏览器来做。也因此在使用时需要额外下载浏览器以及对应驱动,比如googledriver。 总而言之,虽然s 阅读详情

相关推荐

python3实现爬取淘宝页面的商品的数据信息(selenium+pyquery+mongodb)

1.环境须知 做这个爬取的时候需要安装好python3.6和selenium、pyquery等等一些比较常用的爬取和解析库,还需要安装MongoDB这个分布式数据库。 2.直接上代码 spider.pyimport re from config import * import pymongo from selenium import webdriver from selenium.com

DH_SIR的博客 3668

Selenium实战-模拟登录淘宝并爬取商品信息

现在很多网站要获取数据都得要先登录。Selenium是一个用于Web应用程序测试的自动化工具。它直接运行在浏览器中,模拟真实用户的操作。本文介绍如何通过Selenium来登录淘宝并自动爬取商品信息。

学而思(xiejava的blog) 1万+

selenium实现淘宝爬虫

准备工作 安装好selenium和浏览器驱动chromedriver。 淘宝爬虫过程分析加代码 1.页面请求分析 首先请求淘宝页面,然后输入要爬取的数据的关键词,没有登陆,此时会弹出登陆的窗口,采取模拟浏览器登陆形式进行登陆,之后获取页面的文本信息。 安装好浏览器驱动chromedriver,可以先配置其地址信息,实现代码如下: chrome_driver = r"F:\python\python...

du346568978的博客 1216

Python爬虫实战之爬淘宝商品--selenium+Xpath

代码链接利用selenium来自动翻页爬取淘宝商品的标题,价格,销量,产地信息。注意自己配置好python环境(谷歌驱动…)jgs = []fkrss = []cdds = []main()data = {'标题': titles, '客单价': jgs, '销量': fkrss, '产地': cdds}df.to_excel('FL销售.xlsx', index=False)

nobestnobest的博客 5025

python编程实现制作网络流量监控动画

c,实时显示网络带宽使用情况,用柱状图或折线图表示不同时间段的流量变化。通过 Python编程实现图形库(如 Pygame、Tkinter、Matplotlib 等)来实现计算机网络基础概念的可视化动画。global bars # 声明 bars 为全局变量。# 获取当前网络流量。# 创建图形和坐标轴。

qq_42788199的博客 718

科研ABC - The Results Section(SCI论文写作补充)

1 前言 1.1 IMRD格式 1.2 Results部分意义 1.3 Results部分主要内容 2 Results & Discussion关系 2.1 Results & Discussion部分的搭配方式 2.2 Results & Discussion部分的区分 3 Results部分的结构 3.1 Move 1: Set the Stage 3.1....

洋洋洋2020的blog 1622

python selenium爬取淘宝

最新 selenium 爬取淘宝 selenium 需要安装低版本Google 浏览器 请下载 并在python环境下安装好驱动包 自己百度。

qq_40183816的博客 843

Source Insight 4.0舒适黑主题 仿心情看的舒服就行

Source Insight 4.0主题 仿心情看的舒服就行 source insight自带的主题怎么看怎么别扭,于是在试用全网各种主题配色后,在其中一个基础上自定义了c/c++的语法配色 截全图有点糊 函数定义 全局变量 局部变量 枚举变量引用 全局变量引用及结构体成员 宏定义引用 ----------------------后面会再把主题文件贴上来-------------- ...

weixin_43443402的博客 1303

基于随机森林与Django的母婴电商销量预测系统构建

在电商数据分析中,销量预测是连接数据采集与业务决策的关键环节。其核心原理在于从历史订单中提取规律,并借助机器学习模型进行回归拟合。随机森林回归算法通过集成多棵决策树,能够有效处理价格、促销、类目等多维特征,适应母婴用品这类存在季节波动与非线性关系的销售场景。而 Django 框架则为数据存储、后台管理与可视化提供工程化支撑,使爬虫获取或模拟生成的数据能够形成完整的处理闭环。从技术价值看,这类系统不仅展示算法能力,更强调数据治理、特征工程与模型部署的协同。在实际应用中,它可服务于促销规划、库存调拨与选品决策。

weixin_33889245的博客 452

为Codex添加任务完成提示音:提升开发效率的实用技巧

在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通

weixin_26767391的博客 544

基于FreeRTOS与MQTT的物联网技术应用系列——步进电机控制(三)SD卡驱动、FatFS等的移植和ini配置文件读取的实现

本文实现了基于STM32F107VC的金牛开发板的基于SPI模式的SD卡驱动和FatFS的移植,以及利用minini库对ini配置信息文件进行读取。

sqshining的专栏 2138

Selenium爬取淘宝数据

使用Selenium抓取淘宝数据 淘宝的反扒措施太严格了。搞了半天没破解,最后使用使用所见即可爬的Selenium。 在正常浏览器打开淘宝在console面板输入window.navigator.webdriver,返回的时undefined,使用selenium驱动的浏览器同样的操作,返回的是True。可能是淘宝的反扒措施之一。 尝试了淘宝的登录页面,但是没有获取到“密码登录”的接口。 所以直...

wwxxee 950

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1291

selenium爬取淘宝商品

一个菜鸟的学习记录

UIiiiii_的博客 536

Sigrity Power Tree如何生成电源树操作指导

Sigrity Power Tree可以方便地生成电源树,仅需要网表文件就能将系统的电源树直观的显示出来,生成的电源树文件可以用Power DC,optimizePI进行直流和交流仿真,下面介绍如何生成电源树。Base on [Device_TYPE and VALUE]就是识别网表中器件的Device_TYPE作为power tree中的模型的名字。Allegro layout netlist file,就是从Allegro layout文件中输出的netlist第三方网表文件。如何生成电源树操作指导。

weixin_54787054的博客 1538

在 Linux 64 位上遭遇 Signal 7 与 ST22 SYSTEM_CORE_DUMPED:从 es/implementation=std 到 /dev/shm 的一套落地排查法

摘要: Linux 64位SAP系统出现SYSTEM_CORE_DUMPED和Signal 7(对应SIGBUS)错误时,核心问题是进程因共享内存资源异常被操作系统强制终止。主要诱因包括:1)/dev/shm的tmpfs默认容量不足(通常仅占物理内存50%);2)SAP内存管理参数es/implementation=map在64位场景下的敏感性。解决方案应双管齐下:在实例profile设置es/implementation=std以降低对tmpfs的依赖,同时按(RAM+Swap)*75%重新配置/dev/

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 166

Python+Selenium实战——爬取淘宝商品信息

本文介绍了Selenium的相关基础操作以及如何利用Selenium爬取淘宝商品数据

qq_42898642的博客 4942

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

python + selenium 爬淘宝登录

通过禁用这个自动化扩展,你可以尝试规避网站的一些反自动化措施,增加你的自动化脚本的稳定性和安全性。通过向 ChromeOptions 中添加这个实验性选项,你的自动化脚本将在启动 Chrome 浏览器时应用这些特定的偏好设置,以提高安全性并避免在自动化过程中处理密码相关的提示。综合来说,这两行代码的目的是为了优化 Selenium 自动化脚本,避免被网站检测到使用了自动化工具,从而增加自动化测试和网页爬取的成功率。通过禁用这个标记,你可以尝试规避网站的一些反自动化措施,以更好地模拟真实用户的行为。

m0_75092189的博客 1425

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

selenium自动登录淘宝(设置window.navigator.webdriver为false跳过滑块)

解决selenium自动登录淘宝跳过滑块验证

weixin_50971660的博客 3031

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python+selenium实现淘宝秒杀

Python+selenium,完成淘宝秒杀

qq_52128158的博客 1359

使用自动化工具selenium爬取淘宝数据!这个框架太牛逼了!

准备工作 爬虫所需的库和浏览器驱动 本次爬虫所需要的库 selenium #可使用pip命令安装 pip install selenium csv re time 安装浏览器驱动 以谷歌浏览器为例,在浏览器地址栏中输入chrome://version/查看浏览器版本 谷歌的驱动:chromedriver.exe 驱动版本与Chrome版本对应的目录:http://npm.taobao.org/mirrors/chromedriver/2.32/notes.txt 驱动各版本的下载地址:

爬遍所有网站 3249

用Selenium模拟登录淘宝并采集商品信息:从基础到实战

代理策略测试期使用免费代理,生产环境必须用付费服务优先选择支持API调用的代理池(如天启代理)代码健壮性所有网络请求需添加异常处理使用try-except捕获合规性遵守淘宝《robots.txt》规则控制请求频率(建议QPS<2)通过本文方法,可稳定实现淘宝商品数据采集,同时将封禁风险降低80%以上。实际开发中需根据目标网站的反爬策略动态调整参数。

这家伙很懒,什么都没有留下 1188

selenium基础学习笔记&淘宝商品爬取

用selenium接管浏览器爬取淘宝商品,验证码、动态页面的爬虫处理

m0_73874976的博客 1262

【Python爬虫】项目案例讲解,一步步教你爬取淘宝商品数据!

随着互联网时代的到来,人们更加倾向于互联网购物,某宝又是电商行业的巨头,在某宝平台中有很多商家数据,今天带大家使用python+selenium工具获取这些公开的商家数据这次的受害者:淘宝购物平台

Everly_的博客 4074

Selenium爬取淘宝商品

在这个例子中,我们使用Selenium抓取淘宝商品并利用pyquery解析商品的图片、名称、价格、购买人数、店铺名称和店铺所在地。 from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By f...

weixin_38241876的博客 298
上一篇: 如何查看scrapy 爬取过程中的报错,有解决方案的哦!
下一篇: 再见所有的翻译工具!我使用了有道云+Python开发一个批量文档翻译工具!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值