爬什么值得买的榜单——爬虫练习题目一(问)

news/2024/7/19 8:38:02 标签: 爬虫, 什么值得买, python, AI编程, 经验分享

爬虫题目你敢试试吗?

    • 引言
    • 具体原因
    • 网站
    • 思路
      • 总体
    • 我让AI给个框架
      • 1. **项目初始化与依赖安装**
      • 2. **定义数据模型**
      • 3. **网络请求模块**
      • 4. **页面解析模块**
      • 5. **数据存储模块**
      • 6. **主程序流程**
    • 结尾

引言

最近在做什么呢
建立一套完整的信息输入输出系统
在我上一次炒股的过程中
我深刻意识到
打工的我是麻木的
打工的我是闭塞的
打工的我是得过且过的
在这里插入图片描述

加上工作性质
也不可能跟别人有太多的交流
所以信息获取渠道基本为0

重新打工的我
决定要建立一套完善的信息获取来源系统
帮助我能够嗅到风口的味道
在这里插入图片描述

所以 我才发布了这篇文章
人民日报霸榜微信区、国足背后的利益下台?——每日信息输入
从今天
开始我的信息输入


这个只是一些新闻
还不足以体现经济市场
我还需要进一步下沉到市场中


我找了张大妈这个平台
里面的电脑数码区
爬取里面的价格
获取其中动态
在这里插入图片描述

具体原因

什么值得买
有很多的电脑产品爆料
可以一定程度上面反应科技界的发展变化
比如 2023年年中 的硬盘降价 探寻原因 发现国产的存储在崛起
是一个很不错的题材
在这里插入图片描述

网站

最终我选定了这个网站,这也是我长久以来一直关注的
有时候价格不错的产品
我就会出手
在这里插入图片描述

https://faxian.smzdm.com/h3s0t0f163c5p1/#filter-block

思路

总体

爬取网址:https://faxian.smzdm.com/h3s0t0f163c5p1/#filter-block(什么值得买的12小时热榜、电脑数码专区)
爬取目标:
在这里插入图片描述

  1. 主图
  2. 平台
  3. 标题
  4. 价格
  5. 评论数
  6. 链接

初步目标是先爬取这些信息
后面再进一步整理
当然这些信息爬取出来之后
也是要做可视化处理的
不能是简单的数据
那样
就没什么意思了

我让AI给个框架

编写一个爬虫程序来抓取“什么值得买”网站的12小时热榜(电脑数码专区)信息

1. 项目初始化与依赖安装

  • 创建一个新的Python项目目录。
  • 使用pip安装必要的库,如requests用于发送HTTP请求,beautifulsoup4lxml用于解析HTML内容,以及pandas用于数据处理和存储。
pip install requests beautifulsoup4 pandas

2. 定义数据模型

  • 定义一个数据类或字典结构来存储每条商品详情,包括主图URL、平台名称、标题、价格、评论数及链接。
python">class Product:
    def __init__(self, main_img_url, platform, title, price, comments_count, link):
        self.main_img_url = main_img_url
        self.platform = platform
        self.title = title
        self.price = price
        self.comments_count = comments_count
        self.link = link

3. 网络请求模块

  • 创建一个函数用于发送GET请求到目标网址,并返回网页内容。
python">import requests

def fetch_page_content(url):
    headers = {...}  # 添加合适的请求头,例如User-Agent等
    response = requests.get(url, headers=headers)
    response.raise_for_status()  # 检查响应状态码
    return response.text

4. 页面解析模块

  • 使用BeautifulSoup解析HTML内容,定位到包含商品信息的部分,并遍历提取所需字段。
python">from bs4 import BeautifulSoup

def parse_product_info(html_content):
    soup = BeautifulSoup(html_content, 'html.parser')
    product_list = []

    # 找到商品列表元素(具体CSS选择器需要根据实际HTML结构确定)
    product_elements = soup.select('.product-list-item')  # 假设这是商品容器的选择器

    for item in product_elements:
        # 提取每个商品的信息
        main_img = item.find('img')['src']  # 主图URL
        platform = item.find('.platform').text  # 平台名称
        title = item.find('.title').text  # 标题
        price = item.find('.price').text  # 价格
        comments_count = item.find('.comments-count').text  # 评论数
        link = item.find('.link')['href']  # 商品链接

        # 将信息封装为Product对象并添加到产品列表中
        product = Product(main_img, platform, title, price, comments_count, link)
        product_list.append(product)

    return product_list

5. 数据存储模块

  • 将抓取到的商品信息保存到本地文件,可以选择CSV、JSON或者数据库等形式。
python">import pandas as pd

def save_to_csv(products):
    df = pd.DataFrame([vars(p) for p in products])  # 将Product对象转为DataFrame
    df.to_csv('smzdm_products.csv', index=False)  # 存储为CSV文件

6. 主程序流程

  • 组织整个爬虫流程,调用上述各模块方法。
python">if __name__ == '__main__':
    target_url = "https://faxian.smzdm.com/h3s0t0f163c5p1/#filter-block"
    
    # 获取网页内容
    content = fetch_page_content(target_url)

    # 解析内容获取商品信息
    products = parse_product_info(content)

    # 存储结果
    save_to_csv(products)

请根据实际网页源代码调整CSS选择器以正确匹配所需的数据节点。
在这里插入图片描述
AI,还得是您呀!

结尾

我想着是要做完再发
还是这种形式
问了边做再发
最后
决定这一种
两个原因

  1. 我渴了
  2. 我希望能够吸引更多的人互动,参与进来

整体的代码明天发,最迟后天,看情况
那么
在这里插入图片描述


http://www.niftyadmin.cn/n/5357263.html

相关文章

C++20 协程原理与应用

协程 要想了解协程,最好先搞清楚进程,线程,这样才能将三者区分开来! 进程 vs 线程 vs 协程 进程线程协程切换者操作系统操作系统用户(编程者)切换时机根据操作系统自己的切换策略,用户不感知根…

深度强化学习(王树森)笔记11

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

合并K个有序链表----链表OJ

https://leetcode.cn/problems/merge-k-sorted-lists/submissions/499384099/?envTypestudy-plan-v2&envIdtop-100-liked 1、两两合并 前面我们做过合并两个有序链表,那么这里合并K个有序链表,是否可以联想到合并两个呢?答案是可以的&am…

vue中nextTick()

在 Vue.js 中&#xff0c;nextTick() 是一个非常有用的方法&#xff0c;用于在下一个 DOM 更新循环结束后执行延迟回调。这在你需要读取或写入刚刚更新的 DOM 时非常有用。 下面是一个简单的示例代码&#xff0c;用于解析 nextTick() 的用法&#xff1a; <template> &…

SolidWorks基本应用

SolidWorks初始配置 新建零件&#xff0c;快捷键【Ctrl n】 保存零件&#xff0c;最好是新建一个【桌面小屏幕】文件夹&#xff0c;进行保存。 屏幕工程图&#xff1a; 建模&#xff1a; 单击功能栏的【草图栏】&#xff0c;然后点击【草图绘制】&#xff0c;草图绘制前…

Cocos creator 动作系统

动作系统简介 是用于控制物体运动的一套系统&#xff0c;完全依赖代码进行实现&#xff0c;动态调节节点的移动。 移动 cc.moveTo 移动到某个坐标&#xff08;x,y&#xff09; //1秒时间内&#xff0c;移动到0,0let action1 cc.moveTo(1,0,0)this.node.runAction(action1)c…

Pandas进阶--map映射,分组聚合和透视pivot_table详解

文章目录 1.Pandas的map映射&#xff08;1&#xff09;映射&#xff08;2&#xff09;map充当运算工具 2.数据分组和透视&#xff08;1&#xff09;分组统计 - groupby功能 是pandas最重要的功能&#xff08;2&#xff09;聚合agg 3.透视表pivot_table&#xff08;1&#xff09…

2024美赛数学建模C题思路+代码

文章目录 1 赛题思路2 美赛比赛日期和时间3 赛题类型4 美赛常见数模问题5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 美赛比赛日期和时间 比赛开始时间&#xff1a;北京时间2024年2月2日&#xff08;周五&#xff…