当前位置: 首页 > 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: ‘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.hkea.cn/news/14326481/

相关文章:

  • 南阳教育论坛网站建设dede 网站建设模板
  • ADPR国际传媒网站建设如何做视频卖给网站
  • 怎么用vs2008做网站全国100个最缺工职业
  • 17网站一起做wordpress上传apk
  • 北京做网站哪家公司最好wordpress 后端是什么
  • title:(网站开发)安卓手机搭建网页
  • 安徽 网站制作网页制作素材可爱图片
  • 宜宾市城乡建设厅网站wordpress评论无法
  • 兼职做效果图的网站有哪些衡水网站公司
  • ftp查看网站后台密码游戏网站首页设计
  • 网站开发甘特图卡盟建设vip网站
  • html网站开发主要涉及哪些技术自己做的网站如何让qq登录
  • 同里做网站公司展厅效果图
  • 美食网站建设页面要求石家庄全网推广
  • 建设网站选择主机时费用最昂贵的方案是建设网站号码
  • 关于网站建设中原创文章的一些想法百度品牌网站建设
  • 仙桃网站建设wordpress小说连载插件
  • 四川外国语大学网站建设系有没有做网页的兼职网站
  • 李宁运动服网站建设规划书教育机构网站建设方案书
  • 路由器做网站网站改版的方式大致有
  • 门户网站 模板之家泰州市建设局审图中心网站
  • 做漫画在线观看网站友情链接搜读
  • 东莞市官网网站建设只做动漫的网站
  • 可以做区块链推广的网站做点心的网站
  • 保山做网站蓝色系网站设计
  • 公司网站建设文章淘宝网站网页设计说明
  • 长春网站提升排名用js做网站登录
  • 做电影网站违法吗wordpress 新闻模版
  • 网站被恶意刷流量wordpress api采集
  • 建筑工程招聘网seo wordpress主题