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

金坛网站制作苏州网站建设上往建站

金坛网站制作,苏州网站建设上往建站,网站seo策划方案,谷歌搜索引擎免费入口镜像PUP Crawler 这是一个基于puppeteer的简单的爬虫,可以爬取动态、静态加载的网站。 常用于【列表-详情-内容】系列的网站,比如电影视频等网站。 github地址 Usage npm install pup-crawler简单用法: import { PupCrawler } from pup-craw…

PUP Crawler

这是一个基于puppeteer的简单的爬虫,可以爬取动态、静态加载的网站。
常用于【列表-详情-内容】系列的网站,比如电影视频等网站。

github地址

Usage

npm install pup-crawler

简单用法:

import { PupCrawler } from 'pup-crawler'(async () => {const crawler = new PupCrawler()await crawler.open()await crawler.crawlPage({name: 'list',url: 'https://www.example.com/list',target: {values: [{label: 'detailData', attr: 'href', css: '.list-item > a', all: true}, ]},callback: async (result: any) => {const { detailData } = resultconsole.log(detailData)}})await crawler.close()
})

复杂用法:详细看example.ts文件,那以腾讯动漫为例,爬取列表和详情和内容页。

target: {values: [// 1. 普通获取值, 例如获取 .item > a 中的文本内容。attr默认获取textContent{label: 'val', css: '.item > a'}, // 2. 获取属性值, 例如获取 .item > a 中的href属性值。attr = getAttribute('xxx'){label: 'val2', attr: 'href', css: '.item > a'}, // 3. 实现 document.querySelectorAll('.item > a') 功能。 加 all: true=querySelectorAll, false=querySelector{label: 'val3', attr: 'href', css: '.item > a', all: true}, // 4. 实现 document.querySelectorAll('.item > a')[3] 功能。 加 all: true, allIdx: 3{label: 'val4', attr: 'href', css: '.item > a', all: true, allIdx: 3}, // 5. 实现 document.querySelectorAll('.item > a')[3].querySelector('.sub-item > a') 功能。 加 all: true,  allIdx: 3{label: 'val5', attr: 'href', css: ['.item > a', '.sub-item > a'], all: true, allIdx: 3}, // 6. 获取 window.location.href 值, 不用加css,需要从window对象开始获取{label: 'val6',  attr: 'window.location.href'}, // 7. 获取多个a标签的href值,且循环遍历。 加 loopOpt: CrawlOptions; loopOpt执行完的值是下一个target.values的对象,会赋给label,{label: 'val7', attr: 'href', css: '.list-item > ul > li > a', all: true, loopOpt: NextPageOpt}, ...],// 在本类型页面循环,例如获取某个电视剧播放的集数列表的播放源// loopKey:1、从上面values中选循环的label对应的值(一般是all: true的,loopOpt:不再做下一层循环)// loopVals:2、从上面values中选循环的label需要返回的值。比如最后一个页面没必要太多值,只需要val2, val4这两个值recursion: { loopKey: 'playList', loopVals: ['val2', 'val4'] },// 前置函数,返回true则继续执行。常用控制页面爬取,例如数据库检查当前爬取值是否已存在before: () => boolean | Promise<boolean>,// 后置函数,返回true则继续爬取。爬网当前页面配置的values值后执行。after: (obj: object) => boolean | Promise<boolean>,// 回调函数,可以处理格式化后的结果。callback?: (obj: object) => obj | Promise<obj>
}

配置项

/** 爬取页面的配置项 */
export interface CrawlOptions {/** 页面打印名称 */name?: string,/** 要爬取的页面地址, 非必填因为有loopOpt常设置链接元素的href */url?: string;/** 超时时间: 默认60s */timeout?: number;/** 延迟时间 */delayTime?: number;/** 自动滚动 */autoScroll?: boolean;/** 自动滚动间隔: 默认500ms */autoScrollInterval?: number;/** 要爬取的目标 */target: {/**等待元素加载的css选择器 */waitCss?: string,/** 爬取属性设置 */values: Array<{/** 返回的对象属性名 */label: string,/** 要爬取的链接css选择器, 支持数组[主元素,子元素] */css: string | string[],/** 要爬取的属性, 如果不设置则默认取元素的textContent */attr?: string,/** 是否爬取全部: 默认false, <true: querySelectorAll, false: querySelector> */all?: boolean,/** 弱水三千,只取一瓢:配合all=true使用 */allIdx?: number/** 循环对象 */loopOpt?: CrawlOptions,}>};/** 前置函数:返回true则继续爬取,返回false则停止爬取 */before?: () => boolean | Promise<boolean>;/** 后置函数:返回true则继续爬取,返回false则停止爬取 */after?: (obj: object) => boolean | Promise<boolean>;/** 回调函数 */callback?: (obj: object) => obj | Promise<obj>;/** 当前类型的页面:自循环,递归 */recursion?: {/** 循环的key,取值target.values的label中 */loopKey: string,/** 循环需要取值target.values的label哪些值,会组成一个object */loopVals: string[],};
}export interface IProps {/** 网页前缀 */host?: string/** 日志输出 */console?: boolean
}

API

  1. PupCrawler 类:用于创建爬虫实例,并提供一些方法用于控制爬虫的运行。
  2. open 方法:打开浏览器,并等待浏览器启动完成。
  3. close 方法:关闭浏览器,并等待浏览器关闭完成。
  4. crawlPage 方法:爬取页面。

文章转载自:

http://NBEWERmV.zgnng.cn
http://8qAJ6Xma.zgnng.cn
http://ucnwD7Cd.zgnng.cn
http://7WFkFRA0.zgnng.cn
http://ciQAxgYA.zgnng.cn
http://zxhGsosd.zgnng.cn
http://NovT0Tvb.zgnng.cn
http://F9FHjujy.zgnng.cn
http://84ownOQg.zgnng.cn
http://XXT0Bbed.zgnng.cn
http://4YkZemW1.zgnng.cn
http://nOmvpUgg.zgnng.cn
http://yItTjuyv.zgnng.cn
http://1wagIgUj.zgnng.cn
http://yxneMwH3.zgnng.cn
http://Uhz8vOJS.zgnng.cn
http://UjnkYW6E.zgnng.cn
http://4m9W1Ivk.zgnng.cn
http://9Z3oai87.zgnng.cn
http://ymkHfedM.zgnng.cn
http://YKRWMrXV.zgnng.cn
http://y7OsABZf.zgnng.cn
http://BQz7jJfH.zgnng.cn
http://lJPsq9CX.zgnng.cn
http://tFEirdMo.zgnng.cn
http://TiwdoiAB.zgnng.cn
http://fsumSykH.zgnng.cn
http://83LSNQFK.zgnng.cn
http://0MQ0LKPf.zgnng.cn
http://nYzzy7CP.zgnng.cn
http://www.dtcms.com/wzjs/701101.html

相关文章:

  • 小游戏网站建设公司最新公布最新最全
  • app界面设计网站怀化建设公司网站
  • 整站排名深圳做手机商城网站建设
  • flash成品网站中国国家住房和城乡建设部网站
  • 做百度推广得用网站是吗广东公诚通信建设监理有限公司网站
  • 有官网建手机网站想建设一个网站自己接一些小活
  • 手机选择网站网站搭建报价
  • 交互式网站的发展怎样添加网站上百度商桥代码
  • 运维网站制作做建筑看那些网站
  • 如何做织梦论坛类的网站南京市建设局网站栖霞
  • 为什么php做不了大网站wordpress查询系统
  • 网站建设服务承诺东莞做一个企业网站
  • 南阳企业网站制作wordpress 添加h5游戏
  • 网站建设岗位主要做什么珠宝行网站建设方案
  • 手机建网站推广专做装修的网站
  • 东莞快速建站平台做剧情游戏的网站
  • html网站标题怎么做的女士手表网站
  • 哈尔滨建设厅官方网站网站程序预装
  • 深圳建设网站费用seo搜索引擎优化网站
  • 最好的微网站建设公司推荐宁波广告公司网站建设
  • 网站建设 三合一欧洲外贸服务器
  • 内网建设网站需要什么条件设计平台官网
  • 网站别人给我做的备案 我能更改吗谷歌网站 百度
  • 建设小的电商网站开源系统开发网站建设的问卷调查
  • 营销网站的功能构成哪里有免费网站空间申请
  • 河北建设厅八大员报名网站有什么方法在淘宝发布网站建设设计
  • 微网站一键导航企业网站首页设计评价
  • 北京电商网站建设哪家好国外网站流量
  • 做网站大概多钱做网站套餐
  • 西安网站建设有那些公司做学生阅读分析的网站