【python爬虫】爬取淘宝网商品信息

2023-11-19

相信学了python爬虫,很多人都想爬取一些数据量比较大的网站,淘宝网就是一个很好的目标,其数据量大,而且种类繁多,而且难度不是很大,很适合初级学者进行爬取。下面是整个爬取过程:

第一步:构建访问的url

#构建访问的url
    goods = "鱼尾裙"
    page = 10
    infoList = []
    url = 'https://s.taobao.com/search'
    for i in range(page):
        s_num = str(44*i+1)
        num = 44*i
        data = {'q':goods,'s':s_num}

第二步:获取网页信息

def getHTMLText(url,data):
    try:
        rsq = requests.get(url,params=data,timeout=30)
        rsq.raise_for_status()
        return rsq.text
    except:
        return "没找到页面"

第三步:利用正则获取所需数据

def parasePage(ilt, html,goods_id):
    try:
        plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"', html)
        slt = re.findall(r'\"view_sales\"\:\".*?\"', html)
        tlt = re.findall(r'\"raw_title\"\:\".*?\"', html)
        ult = re.findall(r'\"pic_url\"\:\".*?\"', html)
        dlt = re.findall(r'\"detail_url\"\:\".*?\"', html)
        for i in range(len(plt)):
            goods_id += 1
            price = eval(plt[i].split(':')[1])
            sales = eval(slt[i].split(':')[1])
            title = eval(tlt[i].split(':')[1])
            pic_url = "https:" + eval(ult[i].split(':')[1])
            detail_url = "https:" + eval(dlt[i].split(':')[1])
            ilt.append([goods_id,price,sales,title,pic_url,detail_url])
        return ilt
    except:
        print("没找到您所需的商品!")

第四步:将数据保存到csv文件

def saveGoodsList(ilt):
    with open('goods.csv','w') as f:
        writer = csv.writer(f)
        writer.writerow(["序列号", "价格", "成交量", "商品名称","商品图片网址","商品详情网址"])
        for info in ilt:
            writer.writerow(info)

 

结果如下图:

以上就是我的分享,如果有什么不足之处请指出,多交流,谢谢!

想获取更多数据或定制爬虫的请私信我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python爬虫】爬取淘宝网商品信息 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • 下载 PyQt6 的 Qt Designer 并使用 pyuic6 将 .ui 文件转换为 .py 文件

    如何下载 PyQt6 的 QtDesigner 如果没有适用于 PyQt6 的 QtDesigner 我也可以使用 PyQt5 的 QtDesigner 但是如何将此 ui 文件转换为使用 PyQt6 库而不是 PyQt5 的 py 文件
  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • IUnknown—COM和MFC

    转自 http hi baidu com zhangqiuxi blog item 6d9603ad9c8fe5084b36d6a0 html 问题 我用MFC编写COM程序有一段时间了 知道如何使用宏和嵌套类 以及如何在嵌套类中处理IUn
  • ArcGIS水文分析实战教程(18) 河段桩号与线性参考

    ArcGIS水文分析实战教程 18 河段桩号与线性参考 本章导读 在很多线性要素的应用中 桩号扮演着非常重要的角色 例如高速公路 使用桩号可以快速的描述某个事件在该路段的大概位置 同样是线性要素的河流 也可以加入桩号进行管理 作为河岸开发
  • python3中csv模块或者open模块写入中文乱码问题

    with open abc csv a newline encoding utf 8 sig as f writer csv writer f writer writerow bb 需要utf 8 sig模式才可以
  • AIGC产生内容的版权到底归属于谁?

    随着ChatGPT的火热 AIGC 人工智能生成内容 产生的内容越来越被大众使用 但是 有一个问题一直困扰着大家 包括放牛娃 那就是 AIGC产生的内容 有版权吗 版权到底归属于谁 01 什么是AIGC AIGC是指人工智能生成内容 也称为
  • 专利与论文-7:专利在哪儿?如何发现专利?思维分析方法

    前言 专利的最核心的要素 不在于如何熟悉专利申请的流程 也不在于如何写一份符合法律要求的 能够真正保护自己权利的专利申请文件 也不在于专利申请需要花多少钱 而在于如何产生一个真正有价值的专利本身 这是一个思维创造的过程 是拥有自己专利的最难
  • 火爆全网的人工智能聊天机器人使用教程

    最近 大家有没有被一款人工智能聊天机器人所刷屏呢 记得之前元宇宙刚出来的时候 也是极其火爆 虽说这二者是不同的性质 但是都是代表着当下互联网发展之迅速 一 简介 百度百科中给出的解释 美国 开放人工智能研究中心 研发的聊天机器人程序 于20
  • 自定义窗口部件,QT之为什么要delete ui,而其它new对象不用delete

    QT的父子对象机制是在 QWidget和QOject中实现的 当我们使用父对象来创建一个对象的时候 父对象会把这个对象添加到自己的子对象列表中 当这个父对象被删除的时候 它会遍历它的子对象类表并且删除每一个子对象 然后子对象们自己再删除它们
  • android c#websocket传送图片

    这个失败了 传一张可以 一直传就报错 public static void startHttpClientWebSocket AsyncHttpClient getDefaultInstance websocket ws 192 168 2
  • 【100%通过率 】【华为OD机试c++/java/python】最长的密码【 2023 Q1A卷

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 最长的密码 小王在进行游戏大闯关 有一个关卡需要输入一个密码才能通过 密码获得的条件如下 在一个密码本中 每一页都有一个由26个小写字母组成的若
  • Redis可视化工具Redis Desktop Manager使用

    转载于 https www cnblogs com aimu p 7047671 html https www cnblogs com stone w p 4757578 html Redis可视化工具Redis Desktop Manag
  • BRD MRD PRD提纲

    BRD MRD PRD应该怎么写 提纲如下 2011 06 30 20 38 06 转载 标签 brd mrd prd 杂谈 分类 学习 根据情况 总结一下 文档类型 需要做的工作 提纲如下 要达到的目标 BRD阶段 一 市场分析 二 销售
  • C++中的继承

    目录 1 继承的概念及定义 1 1继承的概念 1 2 1继承格式 1 2 2继承关系和访问限定符 1 2 3继承基类成员访问方式的变化 2 基类和派生类对象赋值转换 3 继承中的作用域 同名成员 同名函数 4 派生类的默认成员函数 5 继承
  • 感冒交叉感染

    给没有感染的家人服用板蓝根颗粒 窗户每天要打开同风至少在半小时 平时可以用84消毒液拖地或清洗抹布等 病人的生活用品单方 如果条件允许可以按消毒灯 平时让家人多喝水 适当运动 感染者要带口罩 餐具隔离 室内用醋蒸薰消毒 经常开窗通风 未感者
  • QRCode简单生成二维码

    QRCode简单生成二维码 1 导包 2 jsp的body里 div div
  • 通讯录_Php通讯录系统

    点击上面 蓝字 关注我们 Php通讯录系统 address list 主页 通讯录系统 管理员登录 登录 注册 后台 通讯录系统 编辑 代码 include conn conn php url SERVER REQUEST URI url
  • Maven settings.xml文件中各配置项的详细说明

    1 Maven settings xml文件中各配置项的说明 localRepository 本地仓库 指定Maven本地仓库的路径 默认情况下 它位于用户主目录下的 m2文件夹中
  • Windows系统设置每天自动备份指定文件并自动删除七天前的文件(脚本+Windows任务计划)

    Windows系统设置每天自动备份指定文件并自动删除七天前的文件 脚本 Windows任务计划 在生活中和工作中有时候为了避免电脑宕机导致文件丢失常常会使用一些方式去备份文件 今天小编给大家介绍一个方法 用于自动备份指定文件 并删除N天前的
  • 射击游戏c语言源码,射击游戏 (C++代码)

    解题思路 路 一开始不理解假定A和B都足够聪明 采取让自己获胜概率尽量高的策略 你的任务是计算出A获胜的概率 其实就是说在任意一种方式下都是取得胜利的最大概率 所以要从所有可能的情况 1 6行 从左or从右 里取一个最大的 那么直接去dfs
  • Redis 的五种基本类型(实战篇)

    良心公众号 关注不迷路 Redis 是一个速度非常快的非关系型数据库 它可以存储键 key 与 5 种不同类型的值 value 之间的映射 可以将存储在内存的键值对数据持久化到硬盘 可以使用复制特性来扩展读性能 还可以使用客户端分片来扩展性
  • 【python爬虫】爬取淘宝网商品信息

    相信学了python爬虫 很多人都想爬取一些数据量比较大的网站 淘宝网就是一个很好的目标 其数据量大 而且种类繁多 而且难度不是很大 很适合初级学者进行爬取 下面是整个爬取过程 第一步 构建访问的url 构建访问的url goods 鱼尾裙