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

概述 京东作为中国最大的电商平台,为了保护其网站数据的安全性,采取了一系列的反爬虫机制。然而,作为开发者,我们可能需要使用爬虫工具来获取京东的数据。 正文 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 模拟用户的操作,例如点击、填写表单、截图等。我们可以根据自己的需求编写相应的代码来爬取京东的商品信息、价格、评价等数据。 以下是完整的示例代码,用于爬取京东首页的商品列表:
1 2const proxyHost = "www.16yun.cn"; 3const proxyPort = "5445"; 4const proxyUser = "16QMSOML"; 5const proxyPass = "280651"; 6 7const proxySettings = { 8 proxy: `http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort}`, 9 headers: { 10 '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' 11 } 12}; 13 14async function main() { 15 const browser = await puppeteer.launch({ 16 headless: false, 17 args: [ 18 `--proxy-server=${proxySettings.proxy}`, 19 '--no-sandbox', 20 '--disable-setuid-sandbox' 21 ] 22 }); 23 24 const page = await browser.newPage(); 25 await page.setUserAgent(proxySettings.headers['User-Agent']); 26 await page.goto('https://www.jd.com'); 27 28 // 在这里编写爬取京东数据的代码 29 30 await browser.close(); 31} 32 33main(); 34

当使用 User-Agent 时,有几个注意事项需要考虑: 隐私保护:User-Agent 可能包含有关用户的敏感信息,如操作系统、浏览器版本等。在处理用户数据时,应遵循隐私保护原则,确保用户信息的安全和保密。 兼容性:不同的浏览器和设备使用不同的 User-Agent 字符串,因此在开发网站或应用程序时,需要考虑到不同 User-Agent 的兼容性,以确保正确显示和功能。 版本控制:User-Agent 中的版本信息对于确定浏览器或设备的功能和支持的特性非常重要。在开发过程中,可以根据不同的 User-Agent 版本来选择适当的代码路径或功能。 User-Agent 伪造:由于 User-Agent 字符串可以被修改,因此不能完全依赖它来验证用户身份或进行安全控制。攻击者可以伪造 User-Agent 字符串来欺骗服务器或应用程序,因此需要采取其他安全措施来验证用户身份。

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

Nginx反爬虫: 禁止某些User Agent抓取网站

一、概述网站反爬虫的原因不遵守规范的爬虫会影响网站的正常使用网站上的数据是公司的重要资产爬虫对网站的爬取会造成网站统计数据的污染常见反爬虫手段1\.根据IP访问频率封禁IP2\.设置账号登陆时长,账号访问过多封禁设置账号的登录限制,只有登录才能展现内容

Selenium使用代理出现弹窗验证如何处理

部分商业网站对爬虫程序限制较多,在数据采集的过程中对爬虫请求进行了多种验证,导致爬虫程序需要深入分析目标网站的反爬策略,定期更新和维护爬虫程序,增加了研发的时间和投入成本。这种情况下,使用无头浏览器例如Selenium,模拟用户的请求进行数据采集是更加方便快捷的方式。同时为了避免目标网站出现IP限制,配合爬虫代理,实现每次请求自动切换IP,能够保证长期稳定

使用Panther进行爬虫时,如何优雅地处理登录和Cookies?

前言在互联网数据采集领域,网络爬虫扮演着至关重要的角色。它们能够自动化地从网站获取数据,为数据分析、内容聚合、市场研究等提供原材料。然而,许多网站通过登录和Cookies机制来保护其数据,这为爬虫开发者提出了新的挑战。SymfonyPanther作为一个现

Python爬虫:爱奇艺榜单数据的实时监控

实时监控榜单数据对于内容推荐、市场分析和用户行为研究至关重要。本文将介绍如何使用Python编写爬虫程序,以实时监控爱奇艺榜单数据,并提供相应的代码实现过程,包括如何在代码中添加代理信息以应对反爬虫机制。爬虫技术概述爬虫(WebCrawler),也称为网络

使用 User-Agent 模拟浏览器行为的技巧

在现代网络爬虫和自动化测试中,模拟浏览器行为是一个至关重要的技术。通过模拟浏览器行为,爬虫可以伪装成真实用户,从而绕过网站的反爬虫机制,获取所需的数据。而UserAgent是实现这一目标的关键技术之一。一、UserAgent的作用UserAgent是HTT