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

旌阳移动网站建设广东省级建设主管部门网站

旌阳移动网站建设,广东省级建设主管部门网站,东莞知名企业,网站备案文件下载最近接触了一个个人感觉很奈斯的项目,故记录思路如下: puppeteer项目梳理: 入口文件 run.js 入口命令 node run.js YourConfig.json 1、我们可以在自己的config.json里面设置好 ①、登录的用户名密码;aws或其它服务器的access等id,accessKey…

最近接触了一个个人感觉很奈斯的项目,故记录思路如下:

puppeteer项目梳理:
入口文件 run.js
入口命令 node run.js YourConfig.json

大概逻辑


1、我们可以在自己的config.json里面设置好
①、登录的用户名密码;aws或其它服务器的access等id,accessKey, region等信息;
cookie的路径,要上传到s3或者oss等对象存储平台的文件的路径;
oss和s3的比较
②、要运行的命令放在一个modules{}里面,proxy的设置,headless:true等访问浏览器的设置。

2、爬虫最好是运用模块化思想,把重复用的功能单独的拎出来
在run.js里面我们可以import我们自己其他的js文件。
①首先是import {LoadConfig} from config.js
这个LoadConfig主要是存储从config.解析的变量。
const argv = process.argv.slice(2);
const configPath = argv[0];
const config = JSON.parse(fs.readFileSync(configPath));

这是关于node的process相关内容的参考文章

类似这种,把config.json的信息都解析到数组argv里面,然后按照不同key,设置不同键值对,最后以export LoadConfig导出。
通过这种方式,我们就看把config.json里面的配置按照键值对保存了LoadConfig的数组里面。

②关于s3的配置方法封装到S3Init.js文件中,里面包含了s3的读写文件名,判断文件存在,读写文件流等function。
再引入一个包含save 和skip文件的storage.js方法,主要功能是如果s3已经存在了同名文件在,则判断跳过,避免爬取重复文件。
再映入一个date.js,主要是封装了判断日期,更改日期名字,获取当前日期等功能。

③关键引入import { createPage, closePage } from “./yourpath/Parsebrowser.js”;
这是主要的启动方法,通过const page = await createPage(getCookie, config.headless, config.proxy);去进行爬取,
Parsebrowser.js里面可以设置具体的chrome.exe位置,主要是为了打开浏览器。

④最关键的一步,
import { LoadConfig } from “./yourpath/config.js”;
const config = LoadConfig();
再打开到浏览器之后,在try下,去引入config.modules。因为config.modules里面是不同的js文件,每个js文件代表这一个页面的下载逻辑,
并且以{export download} 形式返回。
我们调用const page = await createPage(getCookie, config.headless, config.proxy),可以通过不同cookies访问网站;
再调用download变量方法就可以进去爬取不同页面(因为不同页面暴露的都是同一个download方法,可以通过循环依次爬取。
同时在同一个网站里,我们可以设置复用的download.js去点击下载按钮,可以设置复用的selectdate.js去选择日期等。

总结:
将关于s3的配置,打开浏览器,访问不同页面都分别独立出来。并且通过config.json去定义想要运行的js文件(所有爬虫js返回一个相同的变量),当运行到入口文件run.js时,for循环会将config.json的Modules定义的js爬虫文件一 一运行下去。
极大提高了代码复用效率以及通过json配置控制爬取页面的灵活性。

细节:
在爬取元素,有些插件的元素在页面element找不到,可能在js里面。比如日期控件picker 的ant-select-dropdown-menu类,就写在了js里面动态加载进去。

http://www.yayakq.cn/news/670107/

相关文章:

  • 温州鹿城区企业网站搭建php网站怎么搭建环境
  • 珠宝网站建设平台分析报告seo的优点有哪些
  • 全站仪建站流程上海微网站制作设计制作
  • 做网站和做app的区别Wordpress怎么变更主页网址
  • 横琴新区公共建设局网站豌豆荚官网入口
  • 有可以花钱让人做问券的网站吗他达拉非副作用
  • 凡科网做网站要钱吗短链接转换工具
  • 汉川做网站邯郸网站建设服务平台
  • 文章类网站wordpress 4.7.9漏洞
  • 网页型网站wordpress 5.0多站点
  • 惠州双语网站建设费用新浪网页游戏
  • 网站主页尺寸网页设计代码信件怎么写
  • 南京电子商务网站建设制作相册影集下载
  • 设计网站官网有哪些广州网站建设报价单
  • 怎么申请网站详细步骤知名网站的org域名
  • 茶网站建设实训报告开发公司前期部岗位职责
  • 河南郑州广告公司网站建设宁波外贸建站公司
  • 建设工程设计备案网站软件开发培训哪有
  • 东阳市住房与城乡建设局网站网站制作软件培训
  • 网站规划与建设策划书法库网站建设
  • 小米手机的网站架构阿里云wordpress一键安装包
  • django网站开发规范wordpress响应式免费
  • 网站怎么搬家wordpress 改成论坛
  • 企业网站的建设 英文摘要从化建网站
  • 肇东市网站淘客建站程序
  • 汕头网站制作网页友情链接英语
  • asp.net建立网站岳麓区专业的建设网站公司
  • 有好的网址推荐吗西安网站seo诊断
  • 长沙微信网站建设梅州网站建设梅州
  • 长沙哪家网络公司做网站好做齐鲁油官方网站