python实战——使用代理IP批量获取手机类电商数据

简介: 本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。

在2024年,各大厂商又出了不少新款手机,功能和外观一个比一个炫酷,很多人对各大厂商对于这一品类的市场竞争力也很好奇,但是困于这类产品平台,品类真的太多了,收集对比起来繁琐复杂,但是,只要我们通过代理IP来批量获取这一数据,可以说就简单很多了。所以,今天我们将一起来看看,如何从各大电商网站收集手机这一品类的数据。



一、爬取目标

我们爬取的目标以华为荣耀Magic7 Pro手机的电商网站的商品数据为主,包括商品名称、价格、销量和用户评价等。通过代理IP,我们可以快速获得大量数据,例如商品价格、销量、用户评价等,用于我们后续市场分析和研究。



二、实现效果

利用python实现自动化批量获取华为荣耀Magic7 Pro手机的电商数据,并存储到本地文件中。

三、准备工作

在开始编写爬虫之前,我们需要确保我们的开发环境已经准备好:

  • Python:3.10
  • 编辑器:PyCharm
  • 第三方模块,自行安装requests库,安装方法为pip install requests
def get html(self):
    res =requests.get(self.url,headers=self.headers)
    html = res.text
    return html  #返回的源代码

四、代理IP

4.1 使用代理的好处

使用代理IP可以让我们数据采集更安全性、效率,数据也更加多样性。代理IP以保护我们的网络活动不被监控;我们在使用的时候通过分散请求压力提高爬取速度;同时,从不同地理位置获取数据,数据也能更加准确、全面。

4.2 获取代理IP

青果网络提供的代理IP服务可以帮助我们提高爬取的成功率。他们家的代理IP使用下来会比同类厂商提供的业务成功率高,服务器稳定,还是在这一行业做了将近10年的老大哥,产品使用的数据采集应用场景也多,售后什么的也很有保障。



五、代理实战

5.1 导入模块

在Python中,我们有一系列的模块可以帮助我们完成爬虫的任务。这些模块包括requests用于发送网络请求,lxml用于解析HTML和XML文档,time用于控制请求的频率,以及os用于文件和目录操作。

# 导入模块
import requests
from lxml import etree
import time

5.2 设置翻页

为了获取尽可能多的数据,我们需要处理一下网站的翻页机制。也就是要我们能够根据页码构造出不同的URL,并能够循环地访问每一页。

if __name__ == '__main__':
    page_number = 1
    for i in range(1, page_number + 1):
        url = f'https://search.jd.com/s_new.php?keyword=华为荣耀Magic7 Pro&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&offset=3&wq=华为荣耀Magic7 Pro&page={0}&s=26&scrolling=y&pos=30&show_items={1}'

5.3 获取商品数据

获取商品数据是爬虫的核心任务,我们还需要得到异步加载的url中的参数show_items:

def get_pids(self):
    html = self.get_html()
    soup = Beautifulsoup(html,'lxml')  #创建Beautifulsoup对象
    lis = soup.find_all("li",class_='gl-item')  #查找1i标签
    for li in lis:
        data pid.li.get("data-pid") #得到1i标签下的data-pid
        if(data_pid): #这里的self.pids是一个集合,用于过滤重复的
          self.pids.add(data_pid)

接着,我们直接用多线程直接每一页开启一个线程,可以加快采集的速度。

def get_extend_imgs_data(self):
    # self.search urls=self.search_urls+','.join(self.pids)
    self.search_urls =self.search_urls.format(str(self.search_page),','.join(self.pids)) #拼凑ur1,将获得的单数拼成ur1,其中show_items中的id是用',隔开的,因此要对集合中的每一个id分割,page就是偶数,这里直接用主网页的page加一就可以了
    print self.search_urls
    html = requests.get(self.search urls, headers=self.headers).text  #请求
    soup = Beautifulsoup(html,'lxml')
    div_search = soup.find_all("div",class ='p-img')  #解析
    for div in div_search:
        img_3 = div.find("img").get('data-lazy-img') #这里可以看到分开查找img属性
        img_4 = div.find("img").get("src") 
        if img_3:  #如果是data-lazy-img
            print img_3
            self.sql.save img(img_3)  #存储到数据库
            self.img_urls.add(img_3)  #用集合去重
        if img_4:  #如果是src属性
            print img_4
            self.sql.save_img(img_4)
            self.img urls.add(img_4)


以上,就是我们这次利用青果网络代理IP做华为荣耀Magic7 Pro手机的电商数据采集的完整流程,如果有其他的需要,可以联系我。

手机数据来源:item.jd.com

代理IP资源:qg.net

相关文章
|
9天前
|
数据采集 XML 存储
Python爬虫实战:一键采集电商数据,掌握市场动态!
这个爬虫还挺实用,不光能爬电商数据,改改解析规则,啥数据都能爬。写爬虫最重要的是要有耐心,遇到问题别着急,慢慢调试就成。代码写好了,运行起来那叫一个爽,分分钟几千条数据到手。
|
9天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
9天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
10天前
|
存储 监控 API
1688平台API接口实战:Python实现店铺全量商品数据抓取
本文介绍如何使用Python通过1688开放平台的API接口自动化抓取店铺所有商品数据。首先,开发者需在1688开放平台完成注册并获取App Key和App Secret,申请“商品信息查询”权限。接着,利用`alibaba.trade.product.search4trade`接口,构建请求参数、生成MD5签名,并通过分页机制获取全量商品数据。文中详细解析了响应结构、存储优化及常见问题处理方法,还提供了竞品监控、库存预警等应用场景示例和完整代码。
|
10天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
1天前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
|
10天前
|
消息中间件 分布式计算 并行计算
Python 高级编程与实战:构建分布式系统
本文深入探讨了 Python 中的分布式系统,介绍了 ZeroMQ、Celery 和 Dask 等工具的使用方法,并通过实战项目帮助读者掌握这些技术。ZeroMQ 是高性能异步消息库,支持多种通信模式;Celery 是分布式任务队列,支持异步任务执行;Dask 是并行计算库,适用于大规模数据处理。文章结合具体代码示例,帮助读者理解如何使用这些工具构建分布式系统。
|
11天前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
11天前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
11天前
|
设计模式 机器学习/深度学习 前端开发
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。

热门文章

最新文章

  • 1
    算法系统协同优化,vivo与港中文推出BlueLM-V-3B,手机秒变多模态AI专家
    37
  • 2
    【02】整体试验思路,在这之前我们发现sec_uid,sec_uid是什么和uid的关系又是什么?相互如何转换?python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
    62
  • 3
    【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    44
  • 4
    【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
    148
  • 5
    美团面试:手机扫描PC二维码登录,底层原理和完整流程是什么?
    128
  • 6
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
    1651
  • 7
    【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
    38
  • 8
    ClKLog支持手机端查询统计数据啦!
    47
  • 9
    OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
    299
  • 10
    Mobile-Agent:通过视觉感知实现自动化手机操作,支持多应用跨平台
    563