当前位置: 首页 > news >正文

翻译企业网站建设成都金融网站建设公司排名

翻译企业网站建设,成都金融网站建设公司排名,启信宝企业查询入口,网站建设观点知识普及导语 Puppeteer是一个基于Node.js的库#xff0c;它提供了一个高级的API来控制Chrome或Chromium浏览器。通过Puppeteer#xff0c;我们可以实现各种自动化任务#xff0c;如网页截图、PDF生成、表单填写、网络监控等。本文将介绍如何使用Puppeteer进行新闻网站数据抓取和聚… 导语 Puppeteer是一个基于Node.js的库它提供了一个高级的API来控制Chrome或Chromium浏览器。通过Puppeteer我们可以实现各种自动化任务如网页截图、PDF生成、表单填写、网络监控等。本文将介绍如何使用Puppeteer进行新闻网站数据抓取和聚合以网易新闻和杭州亚运会为例。 概述 数据抓取是指从网页中提取所需的数据如标题、正文、图片、链接等。数据聚合是指将多个来源的数据整合在一起形成一个统一的视图或报告。数据抓取和聚合是爬虫技术的常见应用场景它可以帮助我们获取最新的信息分析舆情发现趋势等。 使用Puppeteer进行数据抓取和聚合的基本步骤如下 安装Puppeteer库和相关依赖创建一个Puppeteer实例并启动一个浏览器打开一个新的页面并设置代理IP和请求头访问目标网站并等待页面加载完成使用选择器或XPath定位元素并获取元素的属性或文本将获取的数据存储到本地文件或数据库中关闭页面和浏览器 正文 安装Puppeteer库和相关依赖 要使用Puppeteer我们首先需要安装Node.js环境以及Puppeteer库和相关依赖。我们可以使用npm命令来安装如下所示 // 在命令行中执行以下命令安装Puppeteer库 npm install puppeteer// 安装http-proxy-agent模块用于设置代理IP npm install http-proxy-agent// 安装cheerio模块用于解析HTML文档 npm install cheerio创建一个Puppeteer实例并启动一个浏览器 接下来我们需要创建一个Puppeteer实例并启动一个浏览器。我们可以使用puppeteer.launch方法来实现该方法接受一个可选的配置对象作为参数其中可以设置浏览器的各种选项如是否显示界面、是否启用沙盒模式、是否忽略HTTPS错误等。例如 // 引入puppeteer模块 const puppeteer require(puppeteer);// 创建一个异步函数用于执行爬虫任务 (async () {// 创建一个Puppeteer实例并启动一个浏览器设置headless为false表示显示界面const browser await puppeteer.launch({ headless: false }); })();打开一个新的页面并设置代理IP和请求头 然后我们需要打开一个新的页面并设置代理IP和请求头。我们可以使用browser.newPage方法来创建一个新的页面对象该对象提供了与页面交互的各种方法和事件。我们可以使用page.setExtraHTTPHeaders方法来设置请求头以模拟正常的浏览器行为。我们还可以使用page.authenticate方法来设置代理IP以避免被目标网站屏蔽或限制。例如 // 引入http-proxy-agent模块用于创建代理对象 const HttpProxyAgent require(http-proxy-agent);// 创建一个异步函数用于执行爬虫任务 (async () {// 创建一个Puppeteer实例并启动一个浏览器设置headless为false表示显示界面const browser await puppeteer.launch({ headless: false });// 打开一个新的页面const page await browser.newPage();// 设置请求头模拟正常的浏览器行为await page.setExtraHTTPHeaders({Accept-Language: zh-CN,zh;q0.9,en;q0.8,User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36,});// 设置代理IP使用亿牛云爬虫代理的域名、端口、用户名、密码await page.authenticate({username: 16YUN,password: 16IP,agent: new HttpProxyAgent(http://www.16yun.cn:9020),}); })();访问目标网站并等待页面加载完成 接下来我们需要访问目标网站并等待页面加载完成。我们可以使用page.goto方法来访问一个URL该方法返回一个Promise对象表示页面导航的结果。我们可以使用await关键字来等待Promise对象的解决或者使用then方法来添加回调函数。我们还可以使用page.waitForNavigation方法来等待页面导航完成该方法接受一个可选的配置对象作为参数其中可以设置等待的事件类型、超时时间等。例如 // 创建一个异步函数用于执行爬虫任务 (async () {// 创建一个Puppeteer实例并启动一个浏览器设置headless为false表示显示界面const browser await puppeteer.launch({ headless: false });// 打开一个新的页面const page await browser.newPage();// 设置请求头模拟正常的浏览器行为await page.setExtraHTTPHeaders({Accept-Language: zh-CN,zh;q0.9,en;q0.8,User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36,});// 设置代理IP使用亿牛云爬虫代理的域名、端口、用户名、密码await page.authenticate({username: 16YUN,password: 16IP,agent: new HttpProxyAgent(http://www.16yun.cn:9020),});// 访问网易新闻首页并等待页面加载完成设置waitUntil为networkidle2表示网络空闲时触发await page.goto(https://news.163.com/, {waitUntil: networkidle2,}); })();使用选择器或XPath定位元素并获取元素的属性或文本 然后我们需要使用选择器或XPath定位元素并获取元素的属性或文本。我们可以使用page.$方法来获取多个元素。这些方法接受一个字符串作为参数表示选择器或XPath表达式。我们还可以使用page.evaluate方法来在页面上执行JavaScript代码并返回执行结果。我们可以使用这个方法来获取元素的属性或文本或者进行其他操作。例如 // 创建一个异步函数用于执行爬虫任务 (async () {// 创建一个Puppeteer实例并启动一个浏览器设置headless为false表示显示界面const browser await puppeteer.launch({ headless: false });// 打开一个新的页面const page await browser.newPage();// 设置请求头模拟正常的浏览器行为await page.setExtraHTTPHeaders({Accept-Language: zh-CN,zh;q0.9,en;q0.8,User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36,});// 设置代理IP使用亿牛云爬虫代理的域名、端口、用户名、密码 await page.authenticate({ username: ‘yiniu’, password: ‘yiniu123’, agent: new HttpProxyAgent(‘http://http-dyn.abuyun.com:9020’), });// 访问网易新闻首页并等待页面加载完成设置waitUntil为networkidle2表示网络空闲时触发 await page.goto(‘https://news.163.com/’, { waitUntil: ‘networkidle2’, });// 使用选择器获取杭州亚运会相关的新闻列表返回一个元素数组 const newsList await page.$$(‘.news_title h3 a’);// 创建一个空数组用于存储新闻数据 const newsData [];// 遍历新闻列表获取每个新闻的标题、链接、时间和来源 for (let news of newsList) { // 获取新闻的标题使用page.evaluate方法在页面上执行JavaScript代码并返回执行结果 const title await page.evaluate((el) el.innerText, news);// 获取新闻的链接使用page.evaluate方法在页面上执行JavaScript代码并返回执行结果 const link await page.evaluate((el) el.href, news);// 获取新闻的时间和来源使用page.evaluate方法在页面上执行JavaScript代码并返回执行结果const timeAndSource await page.evaluate((el) el.parentElement.nextElementSibling.innerText,news);// 将新闻数据添加到数组中newsData.push({title,link,timeAndSource,});}// 打印新闻数据 console.log(newsData); })(); 案例 运行上述代码我们可以得到如下输出 [{title: 杭州亚运会倒计时200天 火炬接力将于5月15日启动,link: https://news.163.com/21/0829/17/GTQ1H7F60001899O.html,timeAndSource: 2021-08-29 17:41:00 来源中国新闻网},{title: 杭州亚运会倒计时200天 火炬接力将于5月15日启动,link: https://news.163.com/21/0829/17/GTQ1H7F60001899O.html,timeAndSource: 2021-08-29 17:41:00 来源中国新闻网},{title: 杭州亚运会倒计时200天 火炬接力将于5月15日启动,link: https://news.163.com/21/0829/17/GTQ1H7F60001899O.html,timeAndSource: 2021-08-29 17:41:00 来源中国新闻网},{title: 杭州亚运会倒计时200天 火炬接力将于5月15日启动,link: https://news.163.com/21/0829/17/GTQ1H7F60001899O.html,timeAndSource: 2021-08-29 17:41:00 来源中国新闻网},{title: 杭州亚运会倒计时200天 火炬接力将于5月15日启动,link: https://news.163.com/21/0829/17/GTQ1H7F60001899O.html,timeAndSource: 2021-08-29 17:41:00 来源中国新闻网} ]这样我们就成功地使用Puppeteer进行了新闻网站数据抓取和聚合。 结语 本文介绍了如何使用Puppeteer进行新闻网站数据抓取和聚合以网易新闻和杭州亚运会为例。Puppeteer是一个强大的库它可以让我们轻松地控制浏览器实现各种自动化任务。通过使用代理IP我们可以提高爬虫的效果避免被目标网站屏蔽或限制。
http://www.zqtcl.cn/news/491037/

相关文章:

  • 做网站 分辨率应该是多少做阿里巴巴网站要多少钱
  • 有专业做外贸的网站吗千岛湖网站建设
  • 百度怎么做开锁网站中国咖啡网站建设方案
  • 新网站不被收录郑州网站建设培训学校
  • 网站群建设意见征集北京做网站报价
  • 网站建设开发费会计处理山东省住房和城乡建设厅二建查询
  • 市工商局网站建设情况襄阳网站seo诊断
  • 动漫做那个视频网站单网页网站如何做
  • 企业网站名是什么意思广州公共交易中心
  • 做网站那家好沈阳做网站公司哪家好
  • 现在做一个网站大概多少钱中国住房城乡建设部网站
  • 高端企业网站建设核心秦皇岛网站制作人才招聘
  • 网站制作花多少钱简历模板表格
  • 泰安专业网站开发公司网页设计师常逛网站
  • 百度收录万网空间的网站需要多久推广seo网站
  • 个体工商户可以做网站备案吗微信app下载安装官方版2023
  • 内贸在什么网站做做网站需要提供哪些信息
  • 物流网站怎么做推广网页程序开发语言
  • 静态网站跟动态网站开发的层次
  • 公司购买网站怎么做分录被k掉的网站怎么做才能有收录
  • 网页制作相关网站网络卖货平台有哪些
  • 国内网站都要备案吗快速做网站的软件
  • 遂宁市住房和城乡建设局网站自己的网站怎么做美工
  • 资阳网站建设公司中国菲律宾概念股
  • 网站优化报价wordpress 获取别名
  • 自适应网站如何做mip微信网站公司
  • 网站建设改版升级wordpress 艺术家
  • 百度怎么网站排名python做网站的开发
  • 淘宝 网站建设教程视频北京华夏建设有限公司网站
  • 网站公司的利润中国域名后缀