当前位置: 首页 > news >正文

Python爬虫实战——使用NetNut网页解锁器获取亚马逊电商数据

文章目录

  • 一、电商数据的作用
    • 1.1 支撑科学决策,降低试错成本
    • 1.2 提升运营效率,实现降本增效
    • 1.3 深化用户理解,驱动个性化服务
    • 1.4 监测竞品动态,制定差异化策略
    • 1.5 驱动产品创新,满足用户需求
  • 二、爬取目标
  • 三、环境准备
  • 四、NetNut网页解锁器介绍
    • 4.1 特点
    • 4.2 免费申请
  • 五、使用网页解锁器实战
    • 5.1 导入模块
    • 5.2 发送请求获取网页源码
    • 5.3 解析数据
    • 5.4 保存数据
    • 5.5 完整源码
    • 5.6 结果展示
    • 六、总结

一、电商数据的作用

采集电商数据的意义在于通过系统化收集和分析运营中产生的各类信息,为企业提供决策依据、优化业务流程、提升竞争力。其核心作用可简要概括为以下方面:

1.1 支撑科学决策,降低试错成本

  • 市场洞察:通过采集行业趋势、竞品动态、用户需求等数据,帮助企业避开“拍脑袋”决策,制定符合市场规律的战略。
  • 定价优化:分析竞品价格、用户价格敏感度,动态调整定价策略,平衡销量与利润。

1.2 提升运营效率,实现降本增效

  • 供应链优化:基于销售预测和库存数据,实现“以销定产”,减少积压或缺货风险。
  • 物流优化:通过订单分布和配送路径数据,缩短配送时间,降低物流成本。

1.3 深化用户理解,驱动个性化服务

  • 用户画像构建:采集浏览、购买、评价等行为数据,精准定位用户需求,实现个性化推荐和精准营销。
  • 体验提升:分析用户反馈和客服数据,优化产品功能和服务流程,增强用户粘性。

1.4 监测竞品动态,制定差异化策略

  • 竞品分析:实时跟踪竞品价格、促销活动、营销策略,快速响应市场变化,避免同质化竞争。
  • 机会挖掘:通过竞品数据发现市场空白点,为产品创新或细分市场拓展提供方向。

1.5 驱动产品创新,满足用户需求

  • 反馈闭环:通过用户评价、退货原因等数据,发现产品痛点,指导产品迭代和功能优化。
  • C2M定制:基于用户需求数据反向定制产品,降低库存风险,提升市场响应速度。

二、爬取目标

本次的爬取目标是亚马逊电商网站中,苹果最新发布的AirPods Pro3商品信息,字段如下:商品标题、价格、品牌、颜色、耳部放置、外型规格、噪音控制、型号名称、连接技术、无线通信技术、随附部件、商品具体用途、产品的推荐用途、兼容的设备、控制类型、线缆特征、防水级别、控制方法、商品数量、控制器类型、UPC、特殊功能、制造商、包装尺寸、商品重量、ASIN、型号、电池、上架时间、箱内物品:

在这里插入图片描述

三、环境准备

Python:3.10

编辑器:PyCharm

第三方模块,自行安装:

pip install requests # 爬虫模块
pip install lxml # 解析网页模块
pip install pandas # 数据处理模块

四、NetNut网页解锁器介绍

4.1 特点

1、先进的反反爬虫技术:有效绕过网站实施的反抓取措施
2、自动轮换IP管理:根据网站复杂程度动态轮换IP地址
3、验证码解决能力:解决验证码,模仿真实用户行为
4、自定义 HTTP 标头管理:适应特定于站点的要求以提高抓取效率

在这里插入图片描述

4.2 免费申请

1、打开官网选择注册(Netnut代理IP):

在这里插入图片描述

2、注册登录好以后来到控制面板,切换语言为中文:

在这里插入图片描述

3、点击集成示例:

在这里插入图片描述

4、产品有五种可以供我们选择,这里我们用Web Unblocker(网页解锁器)进行测试:
Datacenter:数据中心IP
Residential:住宅IP
Static Residential:静态住宅IP
Mobile:移动IP
Web Unblocker:网页解锁器

在这里插入图片描述

5、一共有100多个国家代理地址可以供我们选择,可以满足各种跨国业务需求,真的太棒了:

在这里插入图片描述

6、选择Python代码进行复制,后续替换代码中的用户名和密码即可:

在这里插入图片描述

7、封装为一个函数方便调用,注意这里需要替换为你自己的NetNut代理用户名和密码:

def get_ip():proxies = {"http": "http://你的用户名:你的密码@unblocker.netnut.io:5959","https": "http://你的用户名:你的密码@unblocker.netnut.io:5959"}return proxies

五、使用网页解锁器实战

5.1 导入模块

import requests  # python基础爬虫库
from lxml import etree  # 可以将网页转换为Elements对象
import pandas as pd  # pandas,用于写入Excel文件

5.2 发送请求获取网页源码

(1)我们先来试试不使用网页解锁器发送请求:

def get_html_str(url):"""不使用网页解锁器"""headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.97 Safari/537.36 Core/1.116.559.400 QQBrowser/19.6.6683.400'}response = requests.get(url, headers=headers, verify=False)html_str = response.textprint(html_str)return html_str

可以看到返回的网页源码特别短,且没有我们需要的数据,这是因为亚马逊电商网站有反爬虫措施识别到了我们的爬虫代码:

在这里插入图片描述

(2)我们携带网页解锁器发送请求获取网页源码:

def get_html_str(url):headers = {'x-netnut-html-render': 'true'}# 使用网页解析器proxies = get_ip()response = requests.get(url, headers=headers,proxies=proxies, verify=False)  #html_str = response.textprint(html_str)return html_str

可以看到返回的网页源码特别长,并且可以搜到我们需要的数据,NetNut网页解锁器简直太强了,可以有效解决请求头检测、IP检测、验证码检测等,可以模仿真实用户行为进行访问:

在这里插入图片描述

5.3 解析数据

我们这里写一个get_data(html_str)函数,传入当前页的网页源码,然后用xpath解析数据:

def get_data(html_str):# 将html字符串转换为etree对象方便后面使用xpath进行解析html_data = etree.HTML(html_str)# 利用xpath取到所有的li标签# 标题title = html_data.xpath('//span[@id="productTitle"]/text()')[0].strip()# 价格price = html_data.xpath('//span[@class="a-price-whole"]/text()')[0].strip()price = '$' + price# 品牌Brand = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[1]/td[2]/span/text()')[0].strip()# 颜色Color = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[2]/td[2]/span/text()')[0].strip()# 耳部放置Ear_Placement = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[3]/td[2]/span/text()')[0].strip()# 外型规格Form_Factor = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[4]/td[2]/span/text()')[0].strip()# 噪音控制Noise_Control = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[5]/td[2]/span/text()')[0].strip()# 型号名称Model_Name = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[1]/td/text()')Model_Name = Model_Name[0].strip().replace('\u200e','')# 连接技术Connectivity_Technology = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[2]/td/text()')Connectivity_Technology = Connectivity_Technology[0].strip().replace('\u200e', '')# 无线通信技术Wireless_Communication_Technology = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[3]/td/text()')Wireless_Communication_Technology = Wireless_Communication_Technology[0].strip().replace('\u200e', '')# 随附部件Included_Components = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[4]/td/text()')Included_Components = Included_Components[0].strip().replace('\u200e', '')# 商品具体用途Specific_Uses_For_Product = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[5]/td/text()')Specific_Uses_For_Product = Specific_Uses_For_Product[0].strip().replace('\u200e', '')# 产品的推荐用途Recommended_Uses_For_Product = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[6]/td/text()')Recommended_Uses_For_Product = Recommended_Uses_For_Product[0].strip().replace('\u200e', '')# 兼容的设备Compatible_Devices = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[7]/td/text()')Compatible_Devices = Compatible_Devices[0].strip().replace('\u200e', '')# 控制类型Control_Type = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[8]/td/text()')Control_Type = Control_Type[0].strip().replace('\u200e', '')# 线缆特征Cable_Feature = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[9]/td/text()')Cable_Feature = Cable_Feature[0].strip().replace('\u200e', '')# 防水级别Water_Resistance_Level = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[10]/td/text()')Water_Resistance_Level = Water_Resistance_Level[0].strip().replace('\u200e', '')# 控制方法Control_Method = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[11]/td/text()')Control_Method = Control_Method[0].strip().replace('\u200e', '')# 商品数量Number_of_Items = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[12]/td/text()')Number_of_Items = Number_of_Items[0].strip().replace('\u200e', '')# 控制器类型Controller_Type = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[13]/td/text()')Controller_Type = Controller_Type[0].strip().replace('\u200e', '')# UPCUPC = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[14]/td/text()')UPC = UPC[0].strip().replace('\u200e', '')# 特殊功能Special_Feature = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[15]/td/text()')Special_Feature = Special_Feature[0].strip().replace('\u200e', '')# 制造商Manufacturer = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[16]/td/text()')Manufacturer = Manufacturer[0].strip().replace('\u200e', '')# 包装尺寸Package_Dimensions = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[17]/td/text()')Package_Dimensions = Package_Dimensions[0].strip().replace('\u200e', '')# 商品重量Item_Weight = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[18]/td/text()')Item_Weight = Item_Weight[0].strip().replace('\u200e', '')# ASINASIN = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[19]/td/text()')ASIN = ASIN[0].strip().replace('\u200e', '')# 型号Item_model_number = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[20]/td/text()')Item_model_number = Item_model_number[0].strip().replace('\u200e', '')# 电池Batteries = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[21]/td/text()')Batteries = Batteries[0].strip().replace('\u200e', '')# 上架时间Date_First_Available = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[22]/td/text()')Date_First_Available = Date_First_Available[0].strip().replace('\u200e', '')return {'商品标题':title,'价格':price,'品牌':Brand,'颜色':Color,'耳部放置':Ear_Placement,'外型规格':Form_Factor,'噪音控制':Noise_Control,'型号名称': Model_Name, '连接技术': Connectivity_Technology,'无线通信技术': Wireless_Communication_Technology, '随附部件': Included_Components,'商品具体用途': Specific_Uses_For_Product, '产品的推荐用途': Recommended_Uses_For_Product,'兼容的设备': Compatible_Devices,'控制类型': Control_Type, '线缆特征': Cable_Feature, '防水级别': Water_Resistance_Level,'控制方法': Control_Method, '商品数量': Number_of_Items,'控制器类型': Controller_Type, 'UPC': UPC, '特殊功能': Special_Feature, '制造商': Manufacturer,'包装尺寸': Package_Dimensions,'商品重量': Item_Weight, 'ASIN': ASIN, '型号': Item_model_number, '电池': Batteries,'上架时间': Date_First_Available}

5.4 保存数据

将获取到的数据写入Excel,当然如果你有数据库也可以写入数据库:

def save_excel(data):# 转换为适合DataFrame的格式formatted_data = [{'字段': key, '内容': value} for key, value in data.items()]# 创建DataFramedf = pd.DataFrame(formatted_data)# 写入exceldf.to_excel('电商数据.xlsx',index=False)

5.5 完整源码

注意:下面get_ip()函数,需要看4.2教程换成自己的NetNut代理的用户名和密码:

import requests  # python基础爬虫库
from lxml import etree  # 可以将网页转换为Elements对象
import pandas as pd  # pandas,用于写入Excel文件def get_ip():proxies = {"http": "http://你的用户名:你的密码@unblocker.netnut.io:5959","https": "http://你的用户名:你的密码@unblocker.netnut.io:5959"}return proxies# def get_html_str(url):
#     """不使用网页解锁器"""
#     headers = {
#         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.97 Safari/537.36 Core/1.116.559.400 QQBrowser/19.6.6683.400'
#     }
#     response = requests.get(url, headers=headers, verify=False)
#     html_str = response.text
#     print(html_str)
#     return html_strdef get_html_str(url):"""使用网页解锁器"""headers = {'x-netnut-html-render': 'true'}# 使用网页解析器proxies = get_ip()response = requests.get(url, headers=headers, proxies=proxies, verify=False)html_str = response.textprint(html_str)return html_strdef get_data(html_str):# 将html字符串转换为etree对象方便后面使用xpath进行解析html_data = etree.HTML(html_str)# 利用xpath取到所有的li标签# 标题title = html_data.xpath('//span[@id="productTitle"]/text()')[0].strip()# 价格price = html_data.xpath('//span[@class="a-price-whole"]/text()')[0].strip()price = '$' + price# 品牌Brand = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[1]/td[2]/span/text()')[0].strip()# 颜色Color = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[2]/td[2]/span/text()')[0].strip()# 耳部放置Ear_Placement = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[3]/td[2]/span/text()')[0].strip()# 外型规格Form_Factor = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[4]/td[2]/span/text()')[0].strip()# 噪音控制Noise_Control = html_data.xpath('/html/body/div[2]/div/div/div[12]/div[45]/div/table/tbody/tr[5]/td[2]/span/text()')[0].strip()# 型号名称Model_Name = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[1]/td/text()')Model_Name = Model_Name[0].strip().replace('\u200e','')# 连接技术Connectivity_Technology = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[2]/td/text()')Connectivity_Technology = Connectivity_Technology[0].strip().replace('\u200e', '')# 无线通信技术Wireless_Communication_Technology = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[3]/td/text()')Wireless_Communication_Technology = Wireless_Communication_Technology[0].strip().replace('\u200e', '')# 随附部件Included_Components = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[4]/td/text()')Included_Components = Included_Components[0].strip().replace('\u200e', '')# 商品具体用途Specific_Uses_For_Product = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[5]/td/text()')Specific_Uses_For_Product = Specific_Uses_For_Product[0].strip().replace('\u200e', '')# 产品的推荐用途Recommended_Uses_For_Product = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[6]/td/text()')Recommended_Uses_For_Product = Recommended_Uses_For_Product[0].strip().replace('\u200e', '')# 兼容的设备Compatible_Devices = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[7]/td/text()')Compatible_Devices = Compatible_Devices[0].strip().replace('\u200e', '')# 控制类型Control_Type = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[8]/td/text()')Control_Type = Control_Type[0].strip().replace('\u200e', '')# 线缆特征Cable_Feature = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[9]/td/text()')Cable_Feature = Cable_Feature[0].strip().replace('\u200e', '')# 防水级别Water_Resistance_Level = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[10]/td/text()')Water_Resistance_Level = Water_Resistance_Level[0].strip().replace('\u200e', '')# 控制方法Control_Method = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[11]/td/text()')Control_Method = Control_Method[0].strip().replace('\u200e', '')# 商品数量Number_of_Items = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[12]/td/text()')Number_of_Items = Number_of_Items[0].strip().replace('\u200e', '')# 控制器类型Controller_Type = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[13]/td/text()')Controller_Type = Controller_Type[0].strip().replace('\u200e', '')# UPCUPC = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[14]/td/text()')UPC = UPC[0].strip().replace('\u200e', '')# 特殊功能Special_Feature = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[15]/td/text()')Special_Feature = Special_Feature[0].strip().replace('\u200e', '')# 制造商Manufacturer = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[16]/td/text()')Manufacturer = Manufacturer[0].strip().replace('\u200e', '')# 包装尺寸Package_Dimensions = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[17]/td/text()')Package_Dimensions = Package_Dimensions[0].strip().replace('\u200e', '')# 商品重量Item_Weight = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[18]/td/text()')Item_Weight = Item_Weight[0].strip().replace('\u200e', '')# ASINASIN = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[19]/td/text()')ASIN = ASIN[0].strip().replace('\u200e', '')# 型号Item_model_number = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[20]/td/text()')Item_model_number = Item_model_number[0].strip().replace('\u200e', '')# 电池Batteries = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[21]/td/text()')Batteries = Batteries[0].strip().replace('\u200e', '')# 上架时间Date_First_Available = html_data.xpath('/html/body/div[2]/div/div/div[97]/div/div/div/div/div/div[1]/div[1]/div/div[2]/div/div/table/tbody/tr[22]/td/text()')Date_First_Available = Date_First_Available[0].strip().replace('\u200e', '')return {'商品标题':title,'价格':price,'品牌':Brand,'颜色':Color,'耳部放置':Ear_Placement,'外型规格':Form_Factor,'噪音控制':Noise_Control,'型号名称': Model_Name, '连接技术': Connectivity_Technology,'无线通信技术': Wireless_Communication_Technology, '随附部件': Included_Components,'商品具体用途': Specific_Uses_For_Product, '产品的推荐用途': Recommended_Uses_For_Product,'兼容的设备': Compatible_Devices,'控制类型': Control_Type, '线缆特征': Cable_Feature, '防水级别': Water_Resistance_Level,'控制方法': Control_Method, '商品数量': Number_of_Items,'控制器类型': Controller_Type, 'UPC': UPC, '特殊功能': Special_Feature, '制造商': Manufacturer,'包装尺寸': Package_Dimensions,'商品重量': Item_Weight, 'ASIN': ASIN, '型号': Item_model_number, '电池': Batteries,'上架时间': Date_First_Available}def save_excel(data):# 转换为适合DataFrame的格式formatted_data = [{'字段': key, '内容': value} for key, value in data.items()]# 创建DataFramedf = pd.DataFrame(formatted_data)# 写入exceldf.to_excel('电商数据.xlsx',index=False)if __name__ == '__main__':url = 'https://www.amazon.com/gp/aw/d/B0FQFB8FMG/?_encoding=UTF8&pd_rd_plhdr=t&aaxitk=2c961813ca337245359ad083c19b8f5f&hsa_cr_id=0&qid=1757486466&sr=1-1-9e67e56a-6f64-441f-a281-df67fc737124&ref_=sbx_be_s_sparkle_lsi4d_asin_0_img&pd_rd_w=AqboJ&content-id=amzn1.sym.9f2b2b9e-47e9-4764-a4dc-2be2f6fca36d%3Aamzn1.sym.9f2b2b9e-47e9-4764-a4dc-2be2f6fca36d&pf_rd_p=9f2b2b9e-47e9-4764-a4dc-2be2f6fca36d&pf_rd_r=6HKX09G15YB6TRQAMP8J&pd_rd_wg=MziL3&pd_rd_r=2ee0b16d-b4ad-422e-a768-b3e26a6d8724'# 一、发送请求,获取网页源码html_str = get_html_str(url)# 二、解析数据data = get_data(html_str)# 三、保存数据save_excel(data)

5.6 结果展示

使用NetNut网页解锁器轻松获取到数据,并且在当前路径下生成Excel文件:

在这里插入图片描述

六、总结

代理对于爬虫是密不可分的,但使用代理需要遵守相关法律法规和目标网站的使用规则。NetNut代理覆盖全球195个国家,8500万优质IP,全方位满足网页数据抓取。提供四种代理IP服务:动态住宅,静态ISP,移动代理,数据中心代理,凭借网页解锁器的强大功能可以采集各种场景的数据,并且现在在做国庆促销有需要的小伙伴们可以试试:Netnut代理IP


文章转载自:

http://SxVpBcOD.mnypL.cn
http://XehO3l9H.mnypL.cn
http://cyWV0MGs.mnypL.cn
http://iUOa8vSg.mnypL.cn
http://6cLciv1r.mnypL.cn
http://cPpm5InK.mnypL.cn
http://ZTb69x0x.mnypL.cn
http://lgoULIAx.mnypL.cn
http://XiTWptVp.mnypL.cn
http://X7DgZYZQ.mnypL.cn
http://1ZeDPeh2.mnypL.cn
http://db6nIIi9.mnypL.cn
http://p3hURdd2.mnypL.cn
http://lDeLjiHt.mnypL.cn
http://5DoFErw9.mnypL.cn
http://vWZj21RG.mnypL.cn
http://6hfYbLm3.mnypL.cn
http://70aFGp6D.mnypL.cn
http://nVBPmHmj.mnypL.cn
http://1uzs1VwQ.mnypL.cn
http://Fi29JqHz.mnypL.cn
http://wtZdKrxS.mnypL.cn
http://0CQE3wbK.mnypL.cn
http://BnGH4LFY.mnypL.cn
http://H5tTTVF9.mnypL.cn
http://0nJ1mleo.mnypL.cn
http://o93Eckrp.mnypL.cn
http://SDiXwc2g.mnypL.cn
http://GJgO3N4P.mnypL.cn
http://qVBSdv4M.mnypL.cn
http://www.dtcms.com/a/384132.html

相关文章:

  • 知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
  • NGUI--游戏登录、注册和服务器选择系统​​
  • C++ std::vector
  • 知微集:Transformer
  • 大数据毕业设计选题推荐-基于大数据的客户购物订单数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • C# JPG转PDF实现方案
  • 单变量单步时序预测 | TCN-BiLSTM时间卷积结合长短期记忆神经网络(MATLAB)
  • uniapp scroll-view 设置scrollTop无效
  • Day24_【深度学习(2)—PyTorch框架安装】
  • 未来汽车电气/电子(E/E)架构——迈向全新电气/电子范式之路上的复杂性掌控
  • 【Linux手册】mmap 接口:内存映射实现高效 IO 的
  • 如何使用代理 IP 实现爬虫代理
  • Ubuntu 录制 gif
  • Day24_【深度学习(3)—PyTorch使用—张量的创建和类型转换】
  • IP-Prefix 配置核心要点与典型应用场景
  • 为什么企业需要高防IP
  • 通过 DNS 解析SCAN IP
  • 网络:TCP/IP协议
  • 【后端】数据库四大范式详细解析
  • 银河麒麟部署mysql8.0并连接应用
  • Mysql中有那些锁
  • React 状态管理(手写实现react-redux)
  • C++:类和对象(下)
  • 智能驾驶再加速:L4 级 AI 系统落地难点与城市试点经验总结
  • 第4章:CPU进阶命令
  • brew@homebrew@linux通用包管理工具linuxbrew
  • NumPy 是 Python 科学计算的基石
  • LLMs之RL之GRPO:《Magistral》的翻译与解读
  • FPGA入门-数码管静态显示
  • 【大模型】企业级应用场景概览