用 xpath、css 选择器 来批量提取数据有些吃力
CSS 选择器、xpath 我都用过,对于提取单独几条挺好用的。
但是批量提取整个页面的数据,就麻烦多了。
所以想着有没有验证 HTML 结构的同时,还能提取出内容的。
为啥要验证
页面结构很动态,目前我只能靠验证来确定:
有可能会出现什么元素,不遗漏元素,也不误解元素含义(比如老虎林首页,还有可能出现
[公开]
、[被下沉]
、[评论关闭]
之类的)防止日后结构变化时不自知
@无名啊,这是最接近你想要的东西:
XSLTJSON: Transforming XML to JSON using XSLT
https://github.com/bramstein/xsltjson
XSLT是一种样式表,用于把XML转换为其他表现形式(比如可显示的HTML,甚至是JSON)。该样式表也可以用于验证输入是否与样式匹配。
不过HTML不是严格的XML,不清楚解析器是否能正确处理HTML中的宽松语法。
PHP版:https://symfony.com/doc/current/components/dom_crawler.html
If you prefer CSS selectors over XPath, install The CssSelector Component. It allows you to use jQuery-like selectors:
$crawler = $crawler->filter('body > p');
querySelector的nodejs版本:
https://www.npmjs.com/package/query-selector
@无名啊,验证不了解。最好的html内容提取工具是浏览器的
document.querySelector()
,我在chatgpt机器人里有很多应用。
@老虎会游泳,以前碰到过类似情况吗?有啥好用的工具吗?
@无名啊,如果你想要nosql还需要支持json索引的时候又要支持sql还方便分发,那就只能做取舍了,估计还没人做这样的轮子
@缘儿,0 楼有提到过
Unqlite:不支持索引;不支持一般 SQL 语句(即,不支持声明式编程),需要自己写类似 Lua 的嵌套代码。。
@无名啊,unqlite
@缘儿,Python。能提供 C API 就好
@咯叽,啥网页的广告,插件都拦不了?
@无名啊,你用什么语言?
层主 @咯叽 于 2023-10-07 23:11 删除了该楼层。
@缘儿,适用于小工具类型的,不用启动服务器(即,你所说的嵌入式?)
比如,像 SQLite 那样,1 MB,便携易分发易使用(可惜它是关系型数据库)
@胡椒舰长,是这个理儿。。
明年 chrome 就要大幅限制广告拦截和油猴插件之类的了。。
@无名啊,你定义大小型的标准是什么?嵌入式?rethink的docker image大小才不到50m,在我的理解中已经算是小型了
@无名啊,我的意思是没有竞争对手就会乱来,就算是apple google这种也会作恶,除非有一个 能平替的对手,他们才会收敛,当然反过来说国产的东西也是这个道理
@胡椒舰长,敲打 chrome。。华为要做自己的浏览器了?看起来必要性不大呀。。
不错,打破封锁,狠狠的敲打敲打 美利坚。 也顺便敲打敲 打苹果和chrome(复制网址自带http://)