分类 未分类 下的文章

从B站视频https://www.bilibili.com/video/BV1D34y1e7Yh?spm_id_from=333.337.search-card.all.click拆解两个蓝牙遥控器的方案中发现线索, 大款的遥控器采用的是Yichip 易兆微 的YC1039芯片.
从易兆微的官网上开到YC10xx系列主要用于防丢器,蓝牙自拍等方案.
除了1039外, YC1021是百度搜索时自动推荐的关键词, 有可能用得也很广泛.

搞了半天的PlayWright, 忽然想到这不应该有无代码的爬虫工具么? 比如叫数据采集器? Data Collector?
查了一下国内的火车头采集器和国外的有些采集器真的收费不菲, 然后就发现Chrome应用商店里有crx应用, 尝试了1个, 发现真香,哈哈.
名称: Instant Data ScraperNoCoding Data Scraper - Easy Web Scraping
这里还有一篇文章https://zapier.com/blog/best-data-collection-apps/介绍了5个, 不过还没有细看.

Instant Data Scraper

尝试了Instant Data Scraper, 体验很好, 非常好用. 强烈推荐.
它的特点是可以对翻页表格数据和无限流数据进行爬取, 配置速度极快. 问题是不能爬取表格内的详情页.
基本使用方式: 点击try another table, 切换到数据区域后, 点击Locate "next" button, 选择下一页按钮, 如果是无限流页面,则选择无限流, 然后对列进行删减选择, 点击start crawling开始爬取.

网站 特殊爬取方式
淘宝 搜索关键词后, 需要把页面切换为列表显示方式. 可以爬到价格
京东 需要使用m.jd.com网址爬取, 无限流方式. 可以爬到价格

Web Scraper - Free Web Scraping

它就可以一级一级的深入到详情页爬取, 相对强大一些, 但配置起来也也要慢一些. 每一个要爬取的参数都要单独配置.

油猴

油猴里搜索scraper也有一些脚本. 有空可以体验.

讲得蛮好.

  1. 如果通胀高于利率, 负债是有利的. 另外比如美国是负利率, 负债还能赚钱.
  2. 2008~2018年贷款是有折扣甚至是低于五年期LPR 4.6%的,都不用急着还钱. 公积金一定不用还, 利息只有3.25%. 2019年10月由个人基准贷款利率转变为LPR利率是比较高的,首套5.5%以上, 二套6%以上, 就不划算了, 可以早点还完.
  3. 在不同的城市有普惠金融, 可以抵押房产获取4%的贷款, 这样可以换完申请这种低息贷款.
  4. 如果等额本息先还的是利息, 超过1/3, 再还是一样的. 等额本金比较适合提交前还贷.
  5. 有房贷的个税抵扣每个月可以抵扣1000元.

主要能源对比

注意:都没有计算封装, 如装气的气管, 装油的油箱, 装电池的封装.装电池的封装应该体积和重量还是比较高的.
另外, 实际还需要考虑生产该项能源所需要花费的能量或者成本, 下面也没有列出来.

能源 比重(g/ml) 比能或者热值(KJ/g) 体积能量密度(KJ/ml) 动力转换效率 有用功体积能量密度
液态氢 0.07 142 9.94 - -
三元锂电池 2.5 0.9 2.25 0.9 2.025
磷酸铁锂电池 2.5 0.576 1.44 0.9 1.296
汽油 0.72 43.2 31.104 0.4 12.4416
柴油 0.84 42.7 35.868 - -
天然气 0.44 47.8 21.032 - -
石油气 0.58 47.5 27.55 - -
石油 0.88 43 37.84 - -
烟煤 - 26 - - -

单位换算

1大卡(千卡) = 4.19 千焦耳
1Wh(瓦时) = 3.6 千焦耳

以秦对比

参数 秦Plus EV电池 秦燃油版
重量kg 382.57 28.08
能量密度Wh/kg 140 -
电池容量71.7kWh 53.56 -
续航km 600 565.21
容积L 223.12 39
百公里油耗L/100Km - 6.9

刀片电池参数

单片刀片电池参数
长m 0.96
宽m 0.09
厚m 0.0135
体积L 1.1664
重量kg 2
密度kg/L 1.71467764060357

参考文章

以下都是基于Python的. playwright也支持js和java
强大易用!新一代爬虫利器 Playwright 的介绍
playwright 爬虫使用, 这篇参考了上一篇, 算是学习笔记, 另外增加了cookie使用
Scraping the web with Playwright
官方文档

概述

Playwright用作爬虫入门最麻烦的就是, 一开始看官方介绍文档最费劲没用. 官方文档上来就是介绍怎么测试, 运行用的命令也不一样, 其实完全不需要那么麻烦.

安装

npm i playwright

正常的安装方式. 如果是官方文档 ,这一步就麻烦很多.

使用

官方文档上来就导入了test库, 而用于爬虫完全不需要. 以爬取eastmoney的新闻为例:

const playwright = require('playwright');
async function main() {
    const browser = await playwright.chromium.launch({
        headless: false // setting this to true will not run the UI
    });

    const page = await browser.newPage();
    await page.goto('https://so.eastmoney.com/news/s?keyword=%E5%90%9B%E5%AE%9E%E7%94%9F%E7%89%A9');
    const titles = await page.$$eval('.news_item', ele=>{
      // return ele.innerText
      let t = []
      for(e of ele){
        t.push({
          title: e.querySelector('.news_item_t a').text,
          link: e.querySelector('.news_item_t a').href,
          time: e.querySelector('.news_item_time').textContent,
        })
      }
      return t
    })
    console.log(titles)
    await page.waitForTimeout(5000); // wait for 5 seconds
    await browser.close();
}

main();

正式进入爬虫前有三步: 1. playwright打开浏览器; 2. 浏览器打开空页面; 3. 空页面打开网址;
正式爬虫就是用page.$eval或者page.$$eval函数从页面的上下文环境(等同于浏览器的console)中运行js并返回.
$eval相当于浏览器console中的$, 而$==document.querySelector, 必填参数第一个是选择器, 第二个是回调函数element=>{}, element是第一个选择到的元素
$$eval相当于浏览器console中的$$, 而$$==document.querySelectorAll, , 必填参数第一个是选择器, 第二个是回调函数elements=>{}, elements是选择到的所有元素数组.
然后在console环境整理好所有内容, return出来就好了.
这一步真的so easy, 比scrapy+splash+scrapy_splash不要强太多.

但值得注意的一点是, 很多网站上都是用了jquery导致$被jquery占用后无法正常选择,这时候还是老老实实用回document.querySelector

神器 selectorgadget

用这个做选择器非常舒爽

代码结构优化

const playwright = require('playwright');

async function main() {
  const browser = await playwright.chromium.launch({
      headless: false // setting this to true will not run the UI
  });

  const page = await browser.newPage();
  await page.goto('https://so.eastmoney.com/news/s?keyword=%E5%90%9B%E5%AE%9E%E7%94%9F%E7%89%A9');
  await scraper(page)
  await scraper(page)

  await page.waitForTimeout(5000); // wait for 5 seconds
  await browser.close();
}

async function scraper(page){
  let titles = await page.$eval('body', scraperCb)
  console.log(titles)
  await page.waitForTimeout(500); // wait for 5 seconds
}

function scraperCb(body){
  let t = []

  function getTitles(){
    let ele = body.querySelectorAll('.news_item')
    for(e of ele){
      t.push({
        title: e.querySelector('.news_item_t a').text,
        link: e.querySelector('.news_item_t a').href,
        time: e.querySelector('.news_item_time').textContent,
      })
    }
  }

  getTitles()
  body.querySelector('.fydot~ a+ a').click()

  return t
}

main();

改成三个函数的结构:

  • main函数: 负责进入页面, 循环运行爬虫抓取下一页
  • scraper函数: 负责运行$eval函数, 获取页面返回值, 并点击下一页, 等待执行完毕.
  • scraperCb函数: 为$eval回调的函数, 内容在页面上下文运行, 其中的变量与爬虫主程序完全隔离.
    另外, scraper函数选择器改为body, 便于在回调函数中抓取并处理所有的元素

文章1链接: https://baijiahao.baidu.com/s?id=1728142987776616748&wfr=spider&for=pc
转发如下:
1:如果对方为个人,不能开具发票,可以让对方提供身份信息,通过税收园区自然人代开发票给企业。通过税收园区自然人代开发票,可以0.6%核定个人所得税,1%的增值税,总税率仅为1.66%,100万只需交1.66万的税。每个人代开额度限制为2499万,代开额度高,非常适合高额的发票代开。开票品目基本不限,服务类发票,材料发票,设备发票等等都可以开出。发票最快当天就能开出,出票后都会附有完税凭证,因此不用担心后期还会再补缴个税。
2:如果公司是因为采购,上游供货商不给开发票,那么公司可以选择在税收园区,注册一家个体户的采购中心,由个体户去向供货商进行采购,然后个体户再出售给公司,并给公司开具发票。
个体户注册在税收园区,可以享受核定征收,1.2%核定所得税,增值税为1%,附加税为0.06%,综合总税率仅为2.26%,100万开票只需交2.26万的税。另外个体户还可以开具1%的专票,受票方公司可以抵扣增值税,抵扣后实际纳税只有1.26%。不过个体户年开票有限制,因为享受核定征收的原因,个体户年开票不能超过500万,超过500万就会改为查账征收,个人经营所得税,就会按照5%—35%进行征收,因此个体户享受核定征收后,年开票一定不要超过500万。

https://dan-suciu.medium.com/web-scraping-in-node-js-top-7-best-tools-67f451fcfda3

python爬虫scrapy更新一直很频繁, 直到最近还在有更新, 可能因为如此, 所以很多网站都有针对性反爬措施.
上文推荐了7个基于node.js的爬虫. 下面按是否基于浏览器技术分类:

基于浏览器技术的爬虫

JSDom, 自实现的一个无头浏览器, 跟PhantomJs比较接近. 意图是纯JS实现Web标准. 5个月前更新.
Puppeteer, 谷歌开发的用于控制chrome的高级API
PlayWright, 据说是跟Puppeteer一个团队, 这个除了chrome外还可以控制firefox和safari, 目的是统一浏览器控制. 本意是浏览器自动化测试工具. 目前挂在微软名下, 到现在都还有更新. 也因为挂着微软,所以在vscode中有插件使用.
Nightmare, 基于ELectron, 可模拟用户操作. 本来是用来对无API网站跨站点自动化访问用的, 现在多用于自动化测试和爬虫. 三年前更新

基于HTTP Request的爬虫

Axios, 其实就是http request的优化, 当然也很好用
CheerIO, 用来做选择器, 语法和Jquery类似.
X-ray. 这是一个实际意义的爬虫, 和其他不同, 这个开发来就是做爬虫的. 但是好几年都不更新了.
Osmosis. 也是爬虫, 感觉和x-ray类似. 同样好几年不更新了.

在线爬虫服务

webscrapingapi, 本质是收费运营的, 但还是有一些免费的api.

对比

基于浏览器的爬虫和基于http request的爬虫区别在于, 前者会运行js, 做css渲染, 后者不会. 因此前者比较慢, 但接近或达到人工浏览, 能更好应对反爬, 后者速度快, 但可能应对反爬困难.

  1. 注意是kicad 6以上版本,否则不支持此功能.
  2. 需要直接打开pcb editor 6.0, 而不能先打开kicad6再从里面打开pcb editor. 否则里面的导入选项会消失
  3. 文件->导入->非Kicad电路板文件.

  1. 代理销售产品A->自研替换产品A->自研产品A的系列产品->临近品类扩张
  2. 自研趋势产品A->等待市场起量和爆发->占领市场

重点做几个月开发又重点做了一两个月的管理, 回过头来继续开发的时候竟然发现所有自己亲手写的代码亲手搭建的环境究竟是怎么回事竟然都忘光了!
所有知识又要从头开始学习一遍,那感觉真的非常沮丧!

一二三个人大山上下小 001
雨天车开火门口月羊只 002
有牛水中风头田土里在 003
日白马手出王子儿女刀 004
木鸟伞鱼瓜气飞虫米云 005
电石了来玉去回多少问 006
早巴父工力不干几男坐 007
打四五六闪的花朵果比 008
午面高包文分平我连元 009
丁厂目见兔禾是把笑着 010
看会自己画好爱心也可 011
家爸妈这爷奶们书串球 012
圆形长方正角灯块冰那 013
弓买哪乐谢想抱竹要立 014
耳红色吃香穿身它发衣 015
他她毛朋友哥弟兄眉鼻 016
光星阳亮今明走兴空两 017
哭牙肚尾你脸黑半呀吗 018
七八九十又很太宝贝和 019
关园生公苗叶林草先岛 020
嘴眼睛脚腿翅膀羽体没 021
认识颜黄蓝绿粉青彩紫 022
食物尝闻味鲜苦甜什么 023
起运动踢足赛快慢跑步 024
唱歌跳舞吹号讲故事怎 025
帮找欢担闷急害怕惊哈 026
老师同学校课桌椅教室 027
做给操伸拉举拍抓拥扔 028
寒冷温暖热凉湿雾净到 029
都办渴喝饿饭睡觉累醒 030
房间帘窗户台视床被处 031
让对姐妹阿姨叔伯姑亲 032
餐盆碗筷盖袋巾杯成用 033
像原菜萝卜豆苹桃杏笋 034
扫地拖洒洗服晒收全呢 035
还谁商场楼街理店鞋市 036
病医院护士伤纱布针住 037
养放鸡鸭农夫猫狗鼠群 038
汽行交装甲机宇宙船化 039
当该科程航员司蹈军银 040
客壳救板加油修轮始离 041
遇别海洋流浪波潮雷乌 042
底虾丑斑带宫美柱矿完 043
挖就岩沙滩鸥瓶珠金骨 044
帆游冲划钓钩篮网最得 045
梦森植树泥春夏秋冬季 046
熊猴鹿虎狮狐狸狼现总 047
跟柳芽蚯蚓蝴蝶燕蜜蜂 048
民种翻浇肥施除杀如再 049
荷蝌蚪蛙露蜻蜓蝉声音 050
晨朝夕落傍晚虹霞追能 051
送过节铃纸烟礼蛋糕娃 052
滴泉溪洼江河湖清神奇 053
求棵根枝枯皮啄鸦松活 054
历期昨新年表时数字久 055
响听叫叹喊欠吸呼说话 056
坡注意路停辆道直定幸 057
影样边外远近左右前后 058
蜘蛛蚊洞丝蚂蚁蛇壁怪 059
队进铁站入票扶乘座位 060
主无广升本东西片匹报 061
颗笔作采未捉尖从众斤 062
京寸雪南至合令夜低古 063
舟弯象井常句告诉北安 064
点飘答吧母城为垂班拿 065
孩玩往知首满丽万百千 066
李桥情尔岁忙与向肉赶 067
才童且法另习请冈各名 068
变条软题村换张背捧双 069
池破倒捡国候扑记摘世 070
介谷胡卫劳庆汗但坏第 071
读浮件必龙算吵勾品按 072
卖尺业堆迷藏越尘灭休 073
非岸屋静望乡野更景短 074
扁旗搭些深仔细旁许格 075
丰言语啦梅参烧砍造舍 076
结真束齐每秀量淡以专 077
级诗闭借因吓照忘念练 078
排伙伴共选兰复苏争鸣 079
重貌错改愿夸霜碧杨展 080
团相及攻互尊懂纯难舰 081
秧稻竿铜领虚骄傲诚实 082
祝赞招嫌初辨斗即雁归 083
转澡梳梢耍线论趣淋邓 084
龄息栽眠居醉散妙却精 085
掉胖喜贴墙替革棉脱躺 086
摆壮顾悄取轻仿佛投聪 087
泼忽然眨积脑代推失观 088
围准备所牧捕惜阴柔摇 089
坪透蹲嘻莲睁趴腰感激 090
艳消搬阵华逃挂熟冻渐 091
假缸慌史劲砸称官议杆 092
秤艘沉止微席导命战解 093
刻助哨敌荡川突枪英雄 094
部宽奔密贺希祖割勇敢 095
敬度挑整滚咬懒吞将靠 096
丢糟粗概保管夹并宜规 097
盛娘蚜盼治俩而引梁架 098
特砖驶薄巧稳郊列弄查 099
速断提建创灰迎啊顶披 100
鼓宜哗尽层戏棋钢弹琴 101
顺州族涌隔峡写陆补拔 102
功折独容易永饥饱贫富 103
丛牢于尤其区巨已纷经 104
枫刘牵困宁切次钟迟闹 105
计怦亿洁帜曲央优坛图 106
申泪扬指接信沿抬际哇 107
思浅示极由术吐铅扎福 108
之亚周寻良份晴何汪跃 109
蹦灵乎死粒灾器纹须使 110
克孙产界技纺织探躲徐 111
荣宿刚轰唤抽拐终瓦股 112
脆塔杜鹃冒需迈迹锋泞 113
托摸利弱末芬芳应环绕 114
胜隐约省茂吾留钉沟够 115
恩寿柏凤凰府单夺扮伟 116
烁辉煌志漫朗哄骗您仍 117
便漂式丹艺显涛陈斜吴 118
含炉岭绝泊乱压禅册印 119
刨埋质厚忠盏稠稀碰赢 120

概述

链接: Blender入门之一
我在blender入门之一中学些的教程似乎没有后续, 而且过于简单, 当然入门也很快速. 这次我不得不找到另一个入门教程从头看起, 以查漏补缺.
这次选择的教程是: 【中文翻译】Blender7天入门教程—入门学这个就够了,已更新完成!

偏好设置

  • 键位映射->Select With Mouse Button改为右键. 这样左键可以变成移动游标. 如果需要调出菜单按w.
  • 键位映射->Space Bar Action改为搜索. 以前的空格就播放确实挺讨厌的.

默认单位

  • 场景属性->单位中修改.默认为meters

快捷键

!G或R或S 撤销G/R/S操作
G或R或S&^ G/R/S操作临时开启吸附
^中键 视角拉远近
/ 独立
B&左键 框选
B&中键 框消选
Alt+G 是物体回到坐标原点
M 将所选物体移动到集合

在面上移动和复制

吸附选项开启:

  • 面模式
  • 旋转对齐目标
  • 项目独立元素(翻译错误, 实为Project Individual Elements,即投影独立元素)

使用G移动原点

活动工具与工作区设置(第一个属性)中, 打钩选项-变换-仅影响-原点

渲染

  • 世界属性(地球图标)->颜色->环境纹理->打开hdri图片->射线可见性->关掉摄像机

使用四边面, 避免极点出现在拐角(≥5条线相交的点)

细分修改器

细分修改器+平滑着色可以让只有少数几个四边形的物体形成平滑的表面.
如果想要某个表面不再平滑, 变得更加锐利, 简单的做法就是增加一圈四边形(^R),并使其面积尽量小.

快速增加细分线

^R增加圈线以外, 在线模式下, 还可以用w菜单选择细分快速增加细分线.

衰减编辑(中上方, 磁吸右侧的点)

例如: 移动一个面的时候,不仅仅移动这个面, 而是对与其相连的面起到一个牵拉的效果. 并且可以通过滚轮改变牵拉的范围.
快捷键:o

多边形建形

直接点击可以拉出一个新的四边形, 按住ctrl可拉出三角形, 拉两个三角形可以自动合并成一个四边形

旋绕

一个面旋绕成体

光滑

不借助细分, 改变当前多边形形状让物体更光滑

随机

随机化所有四边形

滑移边线和顶点

让边线和顶点在当前面/线内滑动

法向缩放

所有面沿着法向缩放. 对猴头看起来像是变胖变瘦的工具一样.

目的 操作
移动时临时开启吸附 按住Ctrl
某一视图全屏 Ctrl+Space
实体视图随机彩色 右上角四个球下拉菜单->颜色->随机
增加子窗口(区域) 鼠标移动到窗口的四角->鼠标变成十字星->拖拽出新窗口. 需要关闭则在窗口最上面点击右键选择闭合区域
视口剪裁导致后面区域看不见 修改右上角视图->视图->裁剪起点/终点
相机视角 0
相机视角对准到当前视角 Ctrl+Alt+0
锁定相机视角 修改右上角视图->视图->锁定相机视图
顶点菜单 ctrl+V
边菜单 ctrl+E
面菜单 ctrl+F
框选(Box选) B
圈选(Circle选) C
反选 Ctrl+I
顶点破开 V
顶点合并 选中要合并的顶点按M
选择破开的点/线 选择菜单->按特征全选->非流型
扩大选择 ctrl+"+"
减少选择 ctrl+"-"
选择链接部分(Link) L
挤出到鼠标 选中点线面, ctrl+左键
切割(切刀),面上增加(切出)线 K
切分(平切), 切穿物体 操作前需要选中要切分的部分, 并从一侧拖向另一侧
将两个循环边用面连接起来 空格->输入桥接循环边

渲染模式

Ctrl+B 框选部分画面渲染
Alt+Ctrl+B 清除框选渲染

着色器

Shift+Ctrl+左键 快速切换到一个新的着色器
Ctrl+L 转移(链接)材质
同时改多个值(如xyz): 鼠标左键拖动选择xyz
Ctrl+右键 切刀可以切断连线

UV编辑

U 在编辑模式下调出UV菜单
F 在纹理绘制模式下调整笔刷大小, 也可用[]调整笔刷大小
活动工具与工作区设置(起子扳手🔧图标)->笔刷设置->纹理->新建->起个名字->映射选择镂版->在文理选项卡显示纹理图标->点击文件夹->选择一个图片->回到起子扳手图标, 在3D视图区域会半透明显示选择的图片. 这个图片操作是:

  • 右键 拖拽
  • Shift+右键 缩放, 可以+x/y
  • Ctrl+右键 旋转

UV展开: 在边编辑模式下, 选中要展开的缝合边, Ctrl+E打开边菜单, 选择标记缝合边. 然后按A全选, 在UV菜单U中重置, 再选择展开即可按缝合边展开.
UV实时展开: 右边起子扳手图标里选项选择实时展开, 然后在UV编辑器UV菜单里也选择实时展开

eevee设置

启用辉光
启动屏幕空间反射,启用其中的反射

动画

准备工作

  • 需要先清理模型,凡是要旋转运动的部件,都应该将原点设置到旋转轴心上,且原点的某一轴(如Y轴)与旋转轴重合
  • 可以将所有细分修改器的viewport改为0,而保持render为2, 这样编辑的时候会比较快一些又不影响渲染
    设置父级
  • 按Shift多选物体,再按Ctrl+P,最后一个物体为父级。 父级物体运动时,其原点也是子物体的原点。
  • 确定不同物体的父级,确保父级移动的时候子级跟着动。
  • 最后添加空物体作为控制器,设置其为最上层父级的实际物体的父级,这样实际物体发生变化不会影响空物体
    3D视图按I 插入关键帧,或者在任何属性上按I,可以插入该属性的关键帧
    时间线视图Ctrl+Tab 切换图表编辑器视图

    图表编辑器

    home,最大化显示
    N,显示属性,可以增加修改器
    图表编辑器中的曲线操作与3D视图中的曲线操作一致
    曲线上按V,调出菜单选择Vector,把曲线变成折线