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

赣州建设公司网站网络推广运营优化

赣州建设公司网站,网络推广运营优化,建网站建网站,wordpress安装2个网站吗使用 Crawlee 实现自动化爬虫流程 1. Crawlee 简介 Crawlee 是一个强大的爬虫框架,用于快速构建和维护可靠的爬虫。它支持多种爬虫类型,包括基于 Cheerio 和 Playwright 的爬虫,能够高效处理静态和动态网页。 2. 项目目标 通过自动化脚本实…

使用 Crawlee 实现自动化爬虫流程

在这里插入图片描述

1. Crawlee 简介

Crawlee 是一个强大的爬虫框架,用于快速构建和维护可靠的爬虫。它支持多种爬虫类型,包括基于 Cheerio 和 Playwright 的爬虫,能够高效处理静态和动态网页。

2. 项目目标

通过自动化脚本实现两个主要任务:

  1. 采集目标网站的所有链接。
  2. 从采集到的链接中提取页面数据。

3. 文件结构

项目包含以下文件:

  • collect_links.js:采集目标网站的所有链接并保存到 JSON 文件。
  • collect_data.js:从 JSON 文件读取链接并采集页面数据。
  • main.js:主控制脚本,协调两个文件的同步执行。
  • collected_links.json:存储采集到的链接。
  • collected_data.json:存储采集到的页面数据。

4. 安装依赖

在项目根目录下运行以下命令安装所需依赖:

npm install crawlee

5. 示例 1:采集链接

collect_links.js 脚本负责从目标网站采集所有链接,并将结果保存到 collected_links.json 文件中。

const { CheerioCrawler, Dataset } = require('crawlee');const startUrls = ['https://example.com']; // 替换为目标网站的起始页面
const crawler = new CheerioCrawler({async requestHandler({ request, $ }) {const links = $('a').map((i, el) => $(el).attr('href')).get();const validLinks = links.filter((link) => link && link.startsWith('http'));await Dataset.pushData({ url: request.loadedUrl, links: validLinks });await crawler.addRequests(validLinks.map((link) => ({ url: link })));}
});(async () => {await crawler.run(startUrls);await Dataset.exportData({ path: './collected_links.json', format: 'json' });console.log('所有链接已保存到 collected_links.json 文件中');
})();

6. 示例 2:采集数据

collect_data.js 脚本从 collected_links.json 文件中读取链接,并采集每个页面的标题和内容,最终将数据保存到 collected_data.json 文件中。

const fs = require('fs');
const { CheerioCrawler, Dataset } = require('crawlee');(async () => {const links = JSON.parse(fs.readFileSync('./collected_links.json', 'utf-8'));const allLinks = links.flatMap((entry) => entry.links);const crawler = new CheerioCrawler({async requestHandler({ request, $ }) {const title = $('title').text();const content = $.html();await Dataset.pushData({ url: request.loadedUrl, title, content });console.log(`已采集页面:${request.loadedUrl}`);}});await crawler.addRequests(allLinks.map((url) => ({ url })));await crawler.run();await Dataset.exportData({ path: './collected_data.json', format: 'json' });console.log('采集完成,数据已保存到 collected_data.json 文件中');
})();

7. 主控制脚本:main.js

主控制脚本负责协调两个文件的同步执行,确保采集链接和采集数据的任务能够连续运行。

const { exec } = require('child_process');
const fs = require('fs');
const path = './collected_links.json';// 运行采集链接的脚本
function runCollectLinks() {console.log('开始采集链接...');exec('node collect_links.js', (err, stdout, stderr) => {if (err) {console.error('采集链接时出错:', err);return;}console.log('采集链接完成:', stdout);console.log('开始采集数据...');runCollectData();});
}// 运行采集数据的脚本
function runCollectData() {exec('node collect_data.js', (err, stdout, stderr) => {if (err) {console.error('采集数据时出错:', err);return;}console.log('采集数据完成:', stdout);});
}// 启动整个流程
runCollectLinks();

8. 同步执行任务

通过 main.js 脚本,确保 collect_links.jscollect_data.js 按顺序同步执行。当 collect_links.js 完成后,自动触发 collect_data.js

9. 运行项目

在项目根目录下运行以下命令启动整个流程:

node main.js

10. 优点

  • 自动化流程:整个采集流程完全自动化,无需手动干预。
  • 解耦设计:采集链接和采集数据的逻辑完全分离,便于维护和扩展。
  • 实时响应:通过主控制脚本,确保在链接文件更新后立即启动数据采集。

11.文档地址

https://crawlee.dev

http://www.dtcms.com/wzjs/453857.html

相关文章:

  • 南京和筑建设有限公司网站北京公司排名seo
  • 旅游网站建设策划方案my77728域名查询
  • 内销机械做哪个网站好网址查询网站
  • 设计网站设计目标给公司做网站要多少钱
  • 网站制作视频教程免费漳州网络推广
  • 上海自适应网站设计网络营销案例成功案例
  • 江门seo计费管理济南seo整站优化招商电话
  • 阿里云做电影网站吗seo综合查询网站
  • 做景观素材有哪几个网站自己做网站网页归档
  • 廊坊做网站公司排名东莞网站seo公司哪家大
  • 建网站前途成品网站货源1
  • 建设音乐网站功能定位百度关键词多少钱一个月
  • 个人建个网站多少钱百度首页排名优化多少钱
  • 个人备案做运营网站嘉兴seo外包公司
  • wordpress自定义额外css背景潍坊网站seo
  • 烟台做网站建设电话重庆seo排名收费
  • wordpress导航栏特效插件陕西seo公司
  • 个人音乐网站程序源码网络推广引流
  • 任意做别的公司网站销售产品违法吗网络推广代运营公司
  • 长春网站设计制作关键词排名提升工具
  • 保定网站建设公司seo 专业
  • 网站推广费用预算数据分析
  • 天津企业网站制作google推广一年3万的效果
  • 建设银行手机网站变网店怎么运营和推广
  • 网站的换肤功能怎么做网络营销环境的分析主要是
  • python基础教程百度网盘企业网站seo案例分析
  • 如何分析网站功能百度做免费推广的步骤
  • 网站设计咨询网站淘宝网店代运营正规公司
  • 怎么学网站建设经营管理培训课程
  • 去哪里弄Wordpress合肥seo服务商