Frossky 发布的文章

是需要解决以下矛盾:

  1. 物品多而杂, 收纳困难-->电器和家具功能集成化小型化
  2. 各人因学习需要上网课, 工作需要在线会议, 娱乐需要看各自的视频, 需要解决独享私密空间和共享公共空间之间的矛盾.
  3. 需要解决在家办公学习更便利却产生的紧张感, 和家庭温馨舒适环境的矛盾-->办公用品/电器/软装从冷酷变得家居化.

办公室的办公环境喜欢用黑白或者蓝色等冷色调, (暖色调限于员工办公桌面)以及大量的玻璃隔断, 老板房间喜欢用棕红色木纹, 小到只摆放一套茶具, 达到整个房间用红木装修, 体现自己和公司的气派. 所有装饰横平竖直, 几乎看不到大圆角和曲线, 展示的是一种规矩. 人接触的大多数平面为硬表面, 办公椅千篇一律, 除了老板的大皮椅子, 大多数椅子采用绒布表面, 椅垫不厚. 不柔软就缺少温暖.

所以目标是既实用又温馨.

有舍才有得, 哪些家具应该被换掉?

  • 房间较小的家庭, 儿童房二层为床,一层可以作为专注力的学习空间.
  • 房间较大的家庭, 已经购置学习桌或者打算购置学习桌的, 可以替换掉学习桌所占用的面积.
  • 对于主卧, 也可以做成双层, 两种方案, 一是上面床下面办公, 这种方式感觉多了一层疲惫感, 每次还要爬上去; 另一种是下面床上面办公. 这种方式要一定防止大的噪音, 如脚步声和挪动桌椅的声音.
  • 对于客厅,可以把沙发换成学习办公房. 学习办公的时候最好可以把电视收起来或者隐蔽起来.

搞了半天的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