Python爬虫:代理ip电商数据实战

引言:数据访问管理引发的烦恼

作为一名Python博主,爬虫技能对于获取和分析数据至关重要,经常爬一下,有益身心健康嘛。爬虫技术对很多人来说,不仅仅是一种工具,更像是一种艺术,帮助我们从互联网中,捕捉到有价值的信息。我经常就会用爬虫来爬取一些所需的数据,用来进行数据分析和模型训练。虽然网络上公开的数据很多,但是碍于其时效性和准确性,很难拿来直接用,所以我总是亲自来爬取数据。

这不前几天,我正在为训练的模型爬取数据的时候,爬着爬着我的爬虫突然不工作了!检查了好几遍都没有发现哪里出错,已经爬了一半了,这可把我急坏了。在网上查阅了大量的资料后,我发现可能是其触发了访问管理机制。按照检查方法,当处于非爬虫操作时,我们在F12控制台输入window.navigator.webdriver时,显示的是false,但是我输入进去却出现了刺眼的红色报错,而且显示也出现了True,我更加相信是我触发了访问管理机制。
在这里插入图片描述
“Failed to load resource: the server responded with a status of 400”,对这个报错我专门去请教了数据分析的前辈,他告诉我这就是非常典型的爬虫触发了访问管理机制,检测出是selenium,报400,无法进入网站。

一、为什么会出现访问管理

为什么会出现访问管理机制呢,想了一大圈,也没发现自己哪里违反了规定,经过他的解答,我才知道原来很多网站常用的一种方式是对单ip进行管理,如果一个ip在一定的时间内大量访问,那么就会不再返回信息,而是返回错误。访问管理机制,听起来就像是网站的“防盗系统”。它们通过各种技术手段,试图识别并阻止自动化的数据抓取行为。这些手段包括但不限于:管理单个IP地址的访问频率、检测用户代理字符串、分析访问模式等。一旦检测到异常行为,网站就会采取相应的措施,比如管理访问、返回错误信息等。
我们此次的触发访问管理机制的原因便是,待爬取的网站运行自己的 JavaScript 代码,对我的爬虫发送过去的请求信息进行检测,然后发现我们是selenium后,触发了 “防盗系统”,就把我们爬虫的请求阻止了。就像上图所示,表现为返回400错误码,意味着请求无法被服务器理解或接受。

二、代理IP的解决方案

这时,代理IP显得尤为重要,它能帮助处理这些管理。代理IP本质上是一个位于用户和目标服务器之间的中介服务器。当用户通过代理IP发送请求时,请求首先到达代理服务器,然后由代理服务器转发到目标服务器。这样,使用代理服务器来代替用户的真实IP地址发送网络请求,从而隐藏用户的真实身份,减少被目标网站识别的风险。
代理IP的作用

  1. 匿名性:代理IP提供了一种匿名访问网络的方式,用户的真实IP地址被隐藏,从而保护用户的隐私。
  2. 高效采集全球公开数据:对于某些受到地区或访问机制管理的平台,通过更换合适的代理IP,可帮助访问原本无法访问的网站和服务。
  3. 地理位置多样性:代理IP通常具有不同的地理位置,可以帮助用户访问那些有地区要求的资源。

代理IP的类型

  1. 透明代理:代理服务器向目标服务器透露用户的真实IP地址,但隐藏了请求的来源。
  2. 普通匿名代理:代理服务器不向目标服务器透露用户的真实IP地址,但目标服务器知道请求是通过代理发出的。
  3. 高匿名代理:代理服务器不向目标服务器透露任何用户信息,目标服务器看到的只是代理服务器的IP地址。

三、代理服务的选择:IPIDEA平台

代理ip的作用很大,然而选择合适的代理服务并非易事,网上关于代理ip的网站有很多,不搜不知道,一搜直接吓我一跳,网页上代理平台眼花缭乱,各种广告满天飞,根本不知道如何选择。我看到这些广告我就想放弃了,根本无心去研究啊,太乱了!但是幸好,老前辈给我推荐了一个他认为比较靠谱的平台,比较容易上手和使用,让我自己回去试试看。
一回到家后,我就迫不及待使用起来了,经过了解,其在全球具有很高的覆盖的住宅IP资源和更新频率,在网上的风评也很好,这让我更加感兴趣起来。

四、代理服务的具体操作

经过半小时的学习和实践,我就已经可以熟练使用其ip代理功能,接下来我把自己的操作分享给大家。

API代理获取

首先登录进平台之后,我们就会看到下面的界面,第一步点击获取代理,然后点击API提取就可以去获取我们需要的API了:
在这里插入图片描述
要提取API有三个方式,这里推荐方式一和方式二,这样选择是因为有利于我们后期利用代理IP去做开发使用。这里我们以方式一中的API提取作为例子,在提取的时候可以手动选择选择套餐及提取数量,还有我们想要的ip的所属国家,在这些都选定好之后,就可以一键生成专属的API链接了,记住这个API链接,下面会用到。在这里插入图片描述
打开这个链接就会看到生成的所有ip了:
在这里插入图片描述

浏览器设置代理IP

IPIDEA的代理服务支持多种IP代理服务,使用灵活且易于操作,且可以放到浏览器上使用,这里我们以谷歌浏览器为例,找到谷歌浏览器的右上角的三个点,选择【设置】进入,在设置中点击【系统】以后选择【打开您计算机的代理设置】
在这里插入图片描述
在手动设置代理中,开启使用代理服务器,填写我们刚才打开链接看到的ip,这里只需要填写一个ip就可以了吧,比如这里我们在这里选择的代理ip:109.74.194.146.10303,其中109.74.194.146就是代理ip的地址,后面的10303就是端口信息。
在这里插入图片描述
配置完成之后,打开谷歌搜索引擎,搜索IP就可以看到当前代理后的IP地址,成功给我们匹配到英国伦敦,说明这是一个来自英国的代理IP。
在这里插入图片描述

五、代理IP在跨境电商的应用

除此之外,代理IP在跨境电商和海外市场分析中发挥着重要作用。在当下主流的电商平台,如亚马逊和EBay,都对爬虫有着很强的防护机制,不稳定的IP地址就会很容易被平台识别。特别是像EBay这样的海外大平台,它们在全球多个国家和地区设有分支机构,这就需要使用不同地区的IP地址来分别管理。
一个不稳定或被多次使用的代理IP不仅不可靠,而且速度会很慢,更有可能这个ip已经被注册使用过,如果再使用就会招致来很多不必要的麻烦。因此,无论对从事跨境电子商务的企业,还是做跨境电商数据的用户来说,拥有一个稳定可靠的代理IP是至关重要的。IPIDEA在这方面做得非常出色,这也是推荐使用IPIDEA平台的一个重要原因。
拿我最喜欢鞋子来举例子,通过使用代理ip依靠爬虫,我们就可以轻松获取EBay的海外平台价格。
在这里插入图片描述
首先设置代理IP API URL,将我们生成的代理ip链接放入进去,然后构建代理字典:

proxy_api_url = 'http://api.proxy.ipidea.io/getBalanceProxyIp'
params = {'num': 100,'return_type': 'txt','lb': 1,'sb': 0,'flow': 1,'regions': '','protocol': 'http'
}# 获取代理IP
response = requests.post(proxy_api_url, headers=headers, params=params, verify=True)
proxy_ip = response.text# 构建代理字典
proxies = {'http': f'https://{proxy_ip}','https': f'https://{proxy_ip}'
}print(f"Using proxy: {proxy_ip}")

完成代理ip的部署之后,对商品页面进行抓取,找到我们需要的价格和元素,这里选择了商品价格、货币类型及运费三类信息:
在这里插入图片描述
将这三类信息元素放入我们的爬虫之中,例如价格price_element = soup.select_one('.x-price-primary span[itemprop="price"]'),然后运行爬虫结果,会发现其输出了所有代理ip的信息以及我们所需要的商品的价格和运费信息:
在这里插入图片描述
更进一步来说,通过这一个物品的信息我们就可以解析整个系列的物品信息,通过把所有的物品信息收集起来,就可以做进一步的价格监控、竞品分析、市场趋势等数据分析,具体完整的代码如下:

from fake_useragent import UserAgent
import requests
from bs4 import BeautifulSoup
import re# 设置随机的请求头
headers = {'User-Agent': UserAgent().random}# 代理IP API URL
proxy_api_url = 'http://api.proxy.ipidea.io/getBalanceProxyIp'
params = {'num': 100,'return_type': 'txt','lb': 1,'sb': 0,'flow': 1,'regions': '','protocol': 'http'
}# 获取代理IP
response = requests.post(proxy_api_url, headers=headers, params=params, verify=True)
proxy_ip = response.text# 构建代理字典
proxies = {'http': f'https://{proxy_ip}','https': f'https://{proxy_ip}'
}print(f"Using proxy: {proxy_ip}")# 目标商品URL
item_url = 'https://www.ebay.com/itm/335217926054'# 商品信息字典
item_info = {}# 发送请求获取商品页面HTML
try:page_response = requests.get(item_url, proxies=proxies)page_response.raise_for_status()  # 检查请求是否成功soup = BeautifulSoup(page_response.text, 'html.parser')# 解析商品价格price_element = soup.select_one('.x-price-primary span[itemprop="price"]')item_info['price'] = price_element['content'] if price_element else 'Price not found'# 解析货币类型currency_element = soup.select_one('.x-price-primary span[itemprop="priceCurrency"]')item_info['currency'] = currency_element.text.strip() if currency_element else 'Currency not found'# 解析运费shipping_label = next((label for label in soup.select('.ux-labels-values__labels') if 'Shipping:' in label.text), None)if shipping_label:shipping_price_element = shipping_label.find_next_sibling('.ux-textspans--BOLD')item_info['shipping_price'] = re.search(r'\d+\.\d+', shipping_price_element.text).group(0) if shipping_price_element else 'Shipping price not found'else:item_info['shipping_price'] = 'Shipping price not found'except requests.RequestException as e:print(f"An error occurred: {e}")# 打印商品信息
print(item_info)

总结与展望

在我个人的体验中,是一个非常值得推荐的代理IP服务。它不仅提供了广泛的全球IP资源,而且操作简单,易于上手。通过使用IPIDEA,我能够轻松获取到我需要的数据。这种便捷性和高效性,对于像我这样经常需要进行数据爬取和分析的人来说,是非常宝贵的资源。如果你还在寻找一个可靠的代理IP,是一个值得我们考虑的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/48413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch学习笔记——在GPU上进行训练

文章目录 1. 环境准备2. 导入必要库3. 加载数据集4. 定义简单的神经网络模型5. 检查和设置GPU设备6. 定义损失函数和优化器7. 训练模型8. 全部代码展示及运行结果 1. 环境准备 首先,确保PyTorch已经安装,且CUDA(NVIDIA的并行计算平台和编程模…

用PyTorch从零开始编写DeepSeek-V2

DeepSeek-V2是一个强大的开源混合专家(MoE)语言模型,通过创新的Transformer架构实现了经济高效的训练和推理。该模型总共拥有2360亿参数,其中每个令牌激活21亿参数,支持最大128K令牌的上下文长度。 在开源模型中&…

vue3前端开发-小兔鲜项目-一些额外提醒的内容

vue3前端开发-小兔鲜项目-一些额外提醒的内容!今天这一篇文章,是提醒大家,如果你正在学习小兔鲜这个前端项目,有些地方需要提醒大家,额外注意的地方。 第一个:就是大家在进入二级页面后,有一个分…

深度学习-7-使用DCGAN生成动漫头像(实战)

参考什么是GAN生成对抗网络,使用DCGAN生成动漫头像 1 什么是生成对抗网络 生成对抗网络,英文是Generative Adversarial Networks,简称GAN。 GAN是一种无监督的深度学习模型,于2014年首次被提出。该算法通过竞争学习的方式生成新的、且与原始数据集相似的数据。 这些生成…

昇思25天学习打卡营第19天|生成式-DCGAN生成漫画头像

打卡 目录 打卡 GAN基础原理 DCGAN原理 案例说明 数据集操作 数据准备 数据处理和增强 部分训练数据的展示 构造网络 生成器 生成器代码 ​编辑 判别器 判别器代码 模型训练 训练代码 结果展示(3 epoch) 模型推理 GAN基础原理 原理介…

C#实战 | 天行健、上下而求索

本文介绍C#开发入门案例。 01、项目一:创建控制台应用“天行健,君子以自强不息” 项目说明: 奋斗是中华民族的底色,见山开山,遇水架桥,正是因为自强不息的奋斗,才有了辉煌灿烂的中华民族。今…

xmind--如何快速将Excel表中多列数据,复制到XMind分成多级主题

每次要将表格中的数据分成多级时,只能复制粘贴吗 快来试试这个简易的方法吧 这个是原始的表格,分成了4级 步骤: 1、我们可以先按照这个层级设置下空列(后买你会用到这个空列) 二级不用加、三级前面加一列、四级前面加…

MAT使用

概念 Shallow heap & Retained Heap Shallow Heap就是对象本身占用内存的大小。 Retained Heap就是当前对象被GC后,从Heap上总共能释放掉的内存(表示如果一个对象被释放掉,那会因为该对象的释放而减少引用进而被释放的所有的对象(包括…

【React】JSX 实现列表渲染

文章目录 一、基础语法1. 使用 map() 方法2. key 属性的使用 二、常见错误和注意事项1. 忘记使用 key 属性2. key 属性的选择 三、列表渲染的高级用法1. 渲染嵌套列表2. 条件渲染列表项3. 动态生成组件 四、最佳实践 在 React 开发中,列表渲染是一个非常常见的需求。…

【多模态】CLIP-KD: An Empirical Study of CLIP Model Distillation

论文:CLIP-KD: An Empirical Study of CLIP Model Distillation 链接:https://arxiv.org/pdf/2307.12732 CVPR 2024 Introduction Motivation:使用大的Teacher CLIP模型有监督蒸馏小CLIP模型,出发点基于在资源受限的应用中&…

【网络】tcp_socket

tcp_socket 一、tcp_server与udp_server一样的部分二、listen接口(监听)三、accept接收套接字1、为什么还要多一个套接字(明明已经有了个socket套接字文件了,为什么要多一个accept套接字文件?)2、底层拿到新…

从R-CNN到Faster-R-CNN的简单介绍

1、R-CNN RCNN算法4个步骤 1、一张图像生成1K~2K个候选区域(使用Selective Search方法) 2、对每个候选区域,使用深度网络提取特征 3、特征送入每一类的SVM分类器,判别是否属于该类 4、使用回归器精细修正候选框位置 R-CNN 缺陷 : 1.训练…

Java使用AsposePDF和AsposeWords进行表单填充

声明:本文为作者Huathy原创文章,禁止转载、爬取!否则,本人将保留追究法律责任的权力! 文章目录 AsposePDF填充表单adobe pdf表单准备引入依赖编写测试类 AsposeWord表单填充表单模板准备与生成效果引入依赖编码 参考文…

【C语言】链式队列的实现

队列基本概念 首先我们要了解什么是队列,队列里面包含什么。 队列是线性表的一种是一种先进先出(First In Fi Out)的数据结构。在需要排队的场景下有很强的应用性。有数组队列也有链式队列,数组实现的队列时间复杂度太大&#x…

【数据结构 | 哈希表】一文了解哈希表(散列表)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

虚拟局域网配置与分析-VLAN

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、相关知识 虚拟局域网(Virtual Local Area Network,VLAN)是一组逻辑上的设备和用户;不受物理位置的…

浅谈监听器之保存响应到文件

浅谈监听器之保存响应到文件 JMeter 提供了一个实用的监听器——“保存响应到文件”,该监听器能够自动将取样器的响应数据直接保存到指定的文件中,便于后续分析或存档。本文档旨在详细介绍如何配置和使用此监听器功能。 适用场景 ● 长时间运行的测试…

昇思25天学习打卡营第n天|本地安装mindspore之二|开始第一课的代码。以及对比xshell,MobaXterm

开始准备在本地的系统上跑例子了。从第一课开始吧。 1,下载代码 打开课程。 下载样例代码 https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/notebook/r2.3/tutorials/zh_cn/beginner/mindspore_quick_start.py 2,在本地Linux上输入并运…

Python新手如何制作植物大战僵尸?这篇文章教会你!

引言 《植物大战僵尸》是一款非常受欢迎的塔防游戏,玩家需要种植各种植物来抵御僵尸的进攻。在这篇文章中,我们将使用Python编写一个简化版的植物大战僵尸游戏,以展示如何使用Python创建游戏。 游戏规则 玩家将种植不同类型的植物来防御僵尸…

好用的电脑录屏软件免费推荐,拥有这3款就能高效录屏!

电脑录屏软件已成为我们记录生活、分享知识的得力助手。但是,市面上琳琅满目的录屏软件令人眼花缭乱,如何才能选择到一款好用的电脑录屏软件免费神器呢?今天,就让我来为您揭晓这个秘密! 首先,我们得明确一…