ToB企服应用市场:ToB评测及商务社交产业平台

标题: 如何在Puppeteer中设置User-Agent来绕过京东的反爬虫机制? [打印本页]

作者: 嚴華    时间: 2023-11-20 10:50
标题: 如何在Puppeteer中设置User-Agent来绕过京东的反爬虫机制?
概述

京东作为中国最大的电商平台,为了保护其网站数据的安全性,采取了一系列的反爬虫机制。然而,作为开发者,我们可能需要使用爬虫工具来获取京东的数据。
正文

Puppeteer 是一个由 Google 开发的 Node.js 库,它提供了高级的 API,用于控制无头浏览器(Headless Browser),如 Chrome 或 Chromium。Puppeteer 的实时端点位于它可以模拟用户在浏览器中的操作,包括点击、填写表单、截图等。这使得我们可以使用Puppeteer来模拟真实用户的行为,获取想要的数据。
在使用Puppeteer爬取京东数据时,可能会遇到一些问题。例如,京东可能会检测到我们使用了自动化工具,并阻止我们的访问。为了解决这个问题,我们可以使用代理服务器来隐藏我们的真实IP地址,并设置合适的User-Agent来模拟真实用户的访问。
User-Agent是HTTP请求头的一部分,用于一些发起标志请求的用户代理(通常是一个浏览器)的类型和版本信息。以下是常见的 User-Agent 类型:
模拟用户的操作,例如点击、填写表单、截图等。我们可以根据自己的需求编写相应的代码来爬取京东的商品信息、价格、评价等数据。 以下是完整的示例代码,用于爬取京东首页的商品列表:
  1. const puppeteer = require('puppeteer');
  2. const proxyHost = "www.16yun.cn";
  3. const proxyPort = "5445";
  4. const proxyUser = "16QMSOML";
  5. const proxyPass = "280651";
  6. const proxySettings = {
  7.   proxy: `http://${proxyUser}:${proxyPass}@${proxyHost}:${proxyPort}`,
  8.   headers: {
  9.     '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'
  10.   }
  11. };
  12. async function main() {
  13.   const browser = await puppeteer.launch({
  14.     headless: false,
  15.     args: [
  16.       `--proxy-server=${proxySettings.proxy}`,
  17.       '--no-sandbox',
  18.       '--disable-setuid-sandbox'
  19.     ]
  20.   });
  21.   const page = await browser.newPage();
  22.   await page.setUserAgent(proxySettings.headers['User-Agent']);
  23.   await page.goto('https://www.jd.com');
  24.   // 在这里编写爬取京东数据的代码
  25.   await browser.close();
  26. }
  27. main();
复制代码
当使用 User-Agent 时,有几个注意事项需要考虑:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4