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

摄影师 网站 模板7月新闻大事件30条

摄影师 网站 模板,7月新闻大事件30条,seo入门基础知识,现在由哪些网站可以做外链使用 Puppeteer 库通过自动化浏览器来访问百度图片搜索,并在搜索结果中下载图片。代码分为两部分: 自动化浏览器任务:使用 Puppeteer 浏览百度图片搜索并获取图片 URL。图片下载:检查图片 URL 类型(base64 或 URL&…

使用 Puppeteer 库通过自动化浏览器来访问百度图片搜索,并在搜索结果中下载图片。代码分为两部分:

  1. 自动化浏览器任务:使用 Puppeteer 浏览百度图片搜索并获取图片 URL。
  2. 图片下载:检查图片 URL 类型(base64 或 URL),并保存图片到本地。

如果无法通过npm安装:

确保 Puppeteer 的下载地址已经指向淘宝镜像
set PUPPETEER_DOWNLOAD_HOST=https://npmmirror.com/mirrors 

示例: 

import puppeteer from 'puppeteer';
import http from "http";
import https from "https";
import fs from "fs";
import {promisify} from 'util';
import qs from "querystring";
import {v4} from "uuid";(async () => {const browser = await puppeteer.launch({headless: false, // 打开浏览器browser: "chrome",slowMo: 250, // slow down by 250ms// executablePath:'', // 其它浏览器打开地址});const page = await browser.newPage();await page.goto('https://image.baidu.com/');console.log('goto: https://image.baidu.com/');await page.setViewport({width: 1920, height: 1080});let count = 0;while (count < 60) {try {await page.focus('[name="word"]');break;} catch (err) {count++;await page.reload();console.log('[name="word"] selector not found, try again');}}// 通过属性获取指定input,填入搜索框文字await page.keyboard.sendCharacter('卡皮巴拉');// 等于上面两条 page.focus page.keyboard.sendCharacter// await page.type('#kw', '卡皮巴拉', { delay: 100 });await page.click('.submit-btn_ZmEXZ');// await page.reload();page.on('load', async () => {console.log('page loaded!');await page.waitForSelector('.main_img');// evaluate 中会在浏览器端运行js代码。const src = await page.evaluate(() => {const images = document.querySelectorAll('.main_img');// 在puppeteer打开的浏览器查看console.log(images);// return images.map(img => img.src);return Array.prototype.map.call(images, img => img.src);});await Promise.all(src.map(src => {console.log(src);return downloadImage(src, './image/p1/');}));await page.screenshot({path: './screenshot.png',});await browser.close();});
})();const urlToImage = (url, dir, callback) => {const mod = /^https:/.test(url) ? https : http;const ext = qs.parse(url).f.split('?').shift().toLowerCase().replace('jpeg', 'jpg');const file = `${dir}${v4()}.${ext}`;return new Promise((resolve, reject) => {mod.get(url, res => {// 使用 fs.createWriteStream 创建文件流const writeStream = fs.createWriteStream(file);// 将响应数据流管道到文件写入流res.pipe(writeStream);// 在写入完成时调用回调writeStream.on('finish', () => {console.log(file);resolve();});});});
};const base64ToImage = async (base64, dir) => {try {const matches = base64.match(/^data:(.+?);base64,(.+)$/);const ext = matches[1].split('/')[1].replace('jpeg', 'jpg');const file = `${dir}${v4()}.${ext}`;await promisify(fs.writeFile)(file, matches[2], 'base64');} catch (err) {console.log(err);}
}async function downloadImage(src, dir) {if (/data:(.+?);base64,(.+)/.test(src)) {await base64ToImage(src, dir);} else if (src.startsWith('http')) {await urlToImage(src, dir);} else {console.log('[error] download fail, unsupported image type!', src);}
}

http://www.dt0577.cn/news/44658.html

相关文章:

  • 国家安全文化建设网站seo线下培训课程
  • cpa做电影网站侵权吗seo黑帽培训骗局
  • wordpress个人支付seo技巧与技术
  • 上海网站搜索排名竞价推广价格
  • 做网站打广告需要多少个服务器seo页面优化技术
  • 莱州 网站制作日本搜索引擎naver入口
  • vue.js做个人网站网站制作公司怎么找
  • 信誉好的丹阳网站建设百度一下 官方网
  • 网站项目设计与制作苏州seo培训
  • 拍摄宣传片收费标准自媒体seo优化
  • 哪些网站可以赚钱拓客引流推广
  • 平台公司和国企的区别广告优化师的工作内容
  • 深圳做个网站要多少钱百度我的订单
  • 微信上登录网站同步怎么做设计素材网站
  • dw做的网站如何上传云服务器长春网站建设策划方案
  • 网站逻辑结构优化是指免费引流微信推广
  • 网站 首页 关键词最近三天的新闻大事简短
  • 做网站在哪买域名b站推广入口2023
  • 武汉做网站的培训机构怎么搭建自己的网站
  • phpstorm wordpress武汉seo优化分析
  • 张家港 网站制作台州关键词优化服务
  • 继续坚持网站建设监管网站app免费生成软件
  • 罗湖网站定制中国疫情最新消息
  • wordpress两步验证码武汉seo
  • 网站的交互性jsurl转码
  • 什么企业时候做网站西安网站制作公司
  • 孔夫子旧书网网站谁做的企业推广软件
  • wordpress文件上传大小厦门seo网站推广优化
  • 建设网站 程序员的提成可以免费发外链的论坛
  • 腾讯理财是什么样的做网站福州百度推广排名