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

建站历史查询企业网站策划案例

建站历史查询,企业网站策划案例,中国建设监理协会网站继续教育系统,wordpress黑白主题导语 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: ‘16YUN’, password: ‘16IP’, agent: new HttpProxyAgent(‘http://www.16yun.cn: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.dnsts.com.cn/news/164730.html

相关文章:

  • 黄骅市网站建设公司哪里学网站建设与管理
  • 网统管公司的网站托管服务怎么样珠海网站建设 旭洁
  • 资料代做网站wordpress老提示更新
  • php网站开发视频教程下载教育网站开发需求分析
  • 网站的策划和建设一个网络空间做两个网站
  • 不会编程如何做自己的网站园林设计
  • 网站 制作价格做网销做什么网站
  • 全景网站如何做wordpress 加密解密
  • 佛山的网站建设承德工程建设信息网站
  • 地方性门户网站有哪些个人网页完整代码
  • app软件制作网站安装一个宽带多少钱
  • 网站备案 失败vitality wordpress
  • 光谷中心城建设投资有限公司网站东莞网站开发报价
  • 网站页面结构怎么做有利于优化seo技术平台
  • 淘宝网站建设百度百科宣城网站seo诊断
  • 网页编辑与网站编辑揭阳seo快速排名
  • 做箱包哪个网站好昆明经济技术开发区官方门户网站
  • 网站建设如何把代码佛山100强企业名单
  • 中山祥云做的网站怎么样百度百科网络营销岗位职责和任职要求
  • 网站建设技术线路选择建新建设集团有限公司网站
  • 十一冶建设集团有限责任公司网站自己做的网站如何上百度
  • pc网站建设哪个好房山营销型网站建设
  • 东莞网站建设乐云seo在线制作网站内容栏目
  • 封面型网页网站有哪些北京公司网站怎么制作
  • 网站下载不了的视频怎么下载北京注册公司地址可以是住宅吗
  • 重庆手机网站建设导航网
  • 网站无后台可以上框架奥联网站建设
  • 苏州网站建设兼职临沂做进销存网站
  • 如何做网站的维护工作dw做门户网站
  • 贸易公司做推广的网站买了个网站后怎么做