如何在Puppeteer中设置User-Agent来绕过京东的反爬虫机制?

小白学大数据
• 阅读 132

概述 京东作为中国最大的电商平台,为了保护其网站数据的安全性,采取了一系列的反爬虫机制。然而,作为开发者,我们可能需要使用爬虫工具来获取京东的数据。 正文 Puppeteer 是一个由 Google 开发的 Node.js 库,它提供了高级的 API,用于控制无头浏览器(Headless Browser),如 Chrome 或 Chromium。Puppeteer 的实时端点位于它可以模拟用户在浏览器中的操作,包括点击、填写表单、截图等。这使得我们可以使用Puppeteer来模拟真实用户的行为,获取想要的数据。 在使用Puppeteer爬取京东数据时,可能会遇到一些问题。例如,京东可能会检测到我们使用了自动化工具,并阻止我们的访问。为了解决这个问题,我们可以使用代理服务器来隐藏我们的真实IP地址,并设置合适的User-Agent来模拟真实用户的访问。 User-Agent是HTTP请求头的一部分,用于一些发起标志请求的用户代理(通常是一个浏览器)的类型和版本信息。以下是常见的 User-Agent 类型:

  1. Mozilla Firefox:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
  2. Google Chrome:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/94.0.4606.81 Safari/537.36
  3. Safari:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML,如 Gecko) Version/14.1.2 Safari/605.1.15
  4. Microsoft Edge:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.50
  5. Opera:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/94.0.4606.81 Safari/537.36 OPR/80.0.4170.72 模拟用户的操作,例如点击、填写表单、截图等。我们可以根据自己的需求编写相应的代码来爬取京东的商品信息、价格、评价等数据。 以下是完整的示例代码,用于爬取京东首页的商品列表:

const proxyHost = "www.16yun.cn"; const proxyPort = "5445"; const proxyUser = "16QMSOML"; const proxyPass = "280651";

const proxySettings = { proxy: http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort}, 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.36' } };

async function main() { const browser = await puppeteer.launch({ headless: false, args: [ --proxy-server=${proxySettings.proxy}, '--no-sandbox', '--disable-setuid-sandbox' ] });

const page = await browser.newPage(); await page.setUserAgent(proxySettings.headers['User-Agent']); await page.goto('https://www.jd.com');

// 在这里编写爬取京东数据的代码

await browser.close(); }

main();

当使用 User-Agent 时,有几个注意事项需要考虑:
隐私保护:User-Agent 可能包含有关用户的敏感信息,如操作系统、浏览器版本等。在处理用户数据时,应遵循隐私保护原则,确保用户信息的安全和保密。
兼容性:不同的浏览器和设备使用不同的 User-Agent 字符串,因此在开发网站或应用程序时,需要考虑到不同 User-Agent 的兼容性,以确保正确显示和功能。
版本控制:User-Agent 中的版本信息对于确定浏览器或设备的功能和支持的特性非常重要。在开发过程中,可以根据不同的 User-Agent 版本来选择适当的代码路径或功能。
User-Agent 伪造:由于 User-Agent 字符串可以被修改,因此不能完全依赖它来验证用户身份或进行安全控制。攻击者可以伪造 User-Agent 字符串来欺骗服务器或应用程序,因此需要采取其他安全措施来验证用户身份。
点赞
收藏
评论区
推荐文章
Easter79 Easter79
2年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
小白学大数据 小白学大数据
10个月前
python使用aiohttp通过设置代理爬取基金数据
说到python爬虫,我们就会想到它那强大的库,很多新手小白在选择框架的时候都会想到使用Scrapy,但是仅仅停留在会使用的阶段。在实际爬虫过程中遇到反爬机制是再常见不过的,今天为了增加对爬虫机制的理解,我们就通过手动实现多线程的爬虫过程,同时引入IP代理
Stella981 Stella981
2年前
2019 Python 面试 100 问,你会几道?
以下内容出自小程序「编程面试题库」!(https://oscimg.oschina.net/oscnet/c595326e367e4a0d9058fd7146873a74.jpg)0遇到过得反爬虫策略以及解决方法?1.通过headers反爬虫2.基于用户行为的发爬虫:(同一IP短
Stella981 Stella981
2年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Stella981 Stella981
2年前
Nginx反爬虫: 禁止某些User Agent抓取网站
一、概述网站反爬虫的原因不遵守规范的爬虫会影响网站的正常使用网站上的数据是公司的重要资产爬虫对网站的爬取会造成网站统计数据的污染常见反爬虫手段1\.根据IP访问频率封禁IP2\.设置账号登陆时长,账号访问过多封禁设置账号的登录限制,只有登录才能展现内容
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
Selenium使用代理出现弹窗验证如何处理
部分商业网站对爬虫程序限制较多,在数据采集的过程中对爬虫请求进行了多种验证,导致爬虫程序需要深入分析目标网站的反爬策略,定期更新和维护爬虫程序,增加了研发的时间和投入成本。这种情况下,使用无头浏览器例如Selenium,模拟用户的请求进行数据采集是更加方便快捷的方式。同时为了避免目标网站出现IP限制,配合爬虫代理,实现每次请求自动切换IP,能够保证长期稳定
可莉 可莉
2年前
2019 Python 面试 100 问,你会几道?
以下内容出自小程序「编程面试题库」!(https://oscimg.oschina.net/oscnet/c595326e367e4a0d9058fd7146873a74.jpg)0遇到过得反爬虫策略以及解决方法?1.通过headers反爬虫2.基于用户行为的发爬虫:(同一IP短
小白学大数据 小白学大数据
4个月前
深度解析Python爬虫中的隧道HTTP技术
前言网络爬虫在数据采集和信息搜索中扮演着重要的角色,然而,随着网站反爬虫的不断升级,爬虫机制程序面临着越来越多的挑战。隧道HTTP技术作为应对反爬虫机制的重要性手段,为爬虫程序提供了更为灵活和隐蔽的数据采集方式。本文将探讨Python爬虫中的隧道HTTP技
小白学大数据
小白学大数据
Lv1
男 · 亿牛云 · python技术
宁为代码类弯腰,不为bug点提交!
文章
63
粉丝
5
获赞
17