热销商品-爬虫销量信息

技术部分详解

1、发送GET请求:使用requests库的get()方法发送GET请求来获取指定网页的内容。在这个例子中,使用了一个自定义的User-Agent,以模拟一个浏览器发送请求。

复制代码
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

Mozilla/5.0:通用格式标识,表示这是一个Mozilla浏览器的用户代理。

(Windows NT 10.0; Win64; x64):操作系统和系统架构的说明,表示这是Windows NT 10.0操作系统的64位版本。

AppleWebKit/537.36 (KHTML, like Gecko):WebKit引擎的版本信息,类似于Chrome浏览器的引擎。
Chrome/58.0.3029.110 Safari/537.3:浏览器的版本信息,这里表示Chrome浏览器的58.0.3029.110版本和Safari浏览器的537.3版本。

复制代码
# 发送GET请求获取页面内容
    response = requests.get(url, headers=headers)

2、解析页面内容:使用BeautifulSoup库的BeautifulSoup()方法来解析页面的HTML内容。在这个例子中,使用了'html.parser'作为解析器来解析网页。

复制代码
# 使用BeautifulSoup解析页面内容
    soup = BeautifulSoup(response.content, 'html.parser')

3、查找元素:通过调用BeautifulSoup对象的find_all()方法来查找所有符合指定条件的元素。在这个例子中,使用了class属性为'tt'的div元素。

复制代码
# 查找所有<div class="tt">元素
    items = soup.find_all('div', class_='tt')

4、收集数据:通过循环迭代每个找到的元素并提取所需的信息来收集数据。在这个例子中,利用get_text()方法获取元素的文本内容,并使用正则表达式对文本进行处理和分割,以得到产品名称和销量数据。

完整代码如下:

复制代码
import requests
from bs4 import BeautifulSoup
import re

def scrape_and_collect_data(url, num_items):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
        }
    
    # 发送GET请求获取页面内容
    response = requests.get(url, headers=headers)
    
    # 使用BeautifulSoup解析页面内容
    soup = BeautifulSoup(response.content, 'html.parser')
    
    # 查找所有<div class="tt">元素
    items = soup.find_all('div', class_='tt')
    
    product_names = []
    sales_data = []
    
    # 收集数据
    for index, item in enumerate(items):
        if index >= num_items:
            break
        
        item_text = item.get_text(strip=True)
        item_text_without_original_price = re.sub(r'原价.*', '', item_text)  # 删除包括"原价"后的文本
        sales_div = item.find_next('div', class_='ss')
        
        if sales_div:
            # 提取销量信息并去除括号及其内部内容
            sales_info = re.sub(r'\([^()]*\)', '', sales_div.get_text(strip=True))
            sales_info_cut = sales_info.split('热销')[-1].split('件')[0].strip()  # 切片操作提取券后之后到'-'之前的内容
            product_names.append(item_text_without_original_price)
            sales_data.append(int(sales_info_cut))
            print(item_text_without_original_price)
            print(sales_info_cut)
    
    return product_names, sales_data

# 要爬取的网页链接和指定爬取的条数
url = 'https://tophub.today/c/shopping'
num_items = 10  # 指定爬取前10条数据

# 调用函数执行爬取并收集数据
product_names, sales_data = scrape_and_collect_data(url, num_items)
相关推荐
喵手4 小时前
Python爬虫实战:HTTP缓存系统深度实战 — ETag、Last-Modified与requests-cache完全指南(附SQLite持久化存储)!
爬虫·python·爬虫实战·http缓存·etag·零基础python爬虫教学·requests-cache
喵手4 小时前
Python爬虫实战:容器化与定时调度实战 - Docker + Cron + 日志轮转 + 失败重试完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·容器化·零基础python爬虫教学·csv导出·定时调度
喵手7 小时前
Python爬虫实战:全站 Sitemap 自动发现 - 解析 sitemap.xml → 自动生成抓取队列的工业级实现!
爬虫·python·爬虫实战·零基础python爬虫教学·sitemap·解析sitemap.xml·自动生成抓取队列实现
iFeng的小屋7 小时前
【2026年新版】Python根据小红书关键词爬取所有笔记数据
笔记·爬虫·python
Love Song残响8 小时前
揭秘Libvio爬虫:动态接口与逆向实战
爬虫
喵手10 小时前
Python爬虫实战:构建招聘会数据采集系统 - requests+lxml 实战企业名单爬取与智能分析!
爬虫·python·爬虫实战·requests·lxml·零基础python爬虫教学·招聘会数据采集
iFeng的小屋10 小时前
【2026最新当当网爬虫分享】用Python爬取千本日本相关图书,自动分析价格分布!
开发语言·爬虫·python
数研小生11 小时前
关键词搜索京东列表API技术对接指南
大数据·数据库·爬虫
喵手11 小时前
Python爬虫实战:网页截图归档完全指南 - 构建生产级页面存证与历史回溯系统!
爬虫·python·爬虫实战·零基础python爬虫教学·网页截图归档·历史回溯·生产级方案
Blurpath住宅代理12 小时前
动态代理的五大优点:提升爬虫效率与安全性
网络·爬虫·动态ip·住宅ip·住宅代理