xiaooooooo 发表于 2024-2-29 10:27:55

本帖最后由 xiaooooooo 于 2024-2-29 10:31 编辑

> 本帖最后由 xiaooooooo 于 2024-2-29 10:30 编辑

> (forum.php?mod=redirect&goto=findpost&pid=78169&ptid=6082)
> > 我也没有fb账号,以前注册了一句话没说过给我封了光看代码的话可能那些eo、eq之类的类名会变,get数组只要 ...

确实!eo,eq的类名变了,换成了ei,ek什么的了。然后我发现each方法要比get方法好调试很多,会告诉我具体哪个路径写错了,不会像get方法一样一整个卡住。

然后我有一个新的问题想要请教,就是目前我遇到的场景是这样的,帖文只有一篇,但是留言有很多条,所以能不能在elmgetter.get或者elmgetter.each当中再嵌套一个each方法来获取留言?
!(data/attachment/forum/202402/29/102040y51c14kc75qbe5je.png)
如图所示,类名为ei的都是留言,但是如果沿用一个each方法的话就会出现文本被合并分不开的情况。

或者我有另一个想法,我只会写一段python的伪代码来表示遍历子节点的这个方法,具体在js里面要怎么写我想请教一下。

```
if len(类名为.eh.ck的这个div节点)>0:

    for i in 类名为.eh.ck的这个div节点:
      i.find('用户名的路径').text()
      i.find('用户留言的路径').text()
   
      message.push({
            用户名:'……'
            留言:'……'
      })
      
    datalist.push({message})
```

xiaooooooo 发表于 2024-2-29 23:48:46

李恒道 发表于 2024-2-28 17:52
mbasic.facebook.com页面
没看到匹配上css
感觉完全不一致


道哥 代码我已经重写了 请教一下能不能帮我把楼上这段伪代码写成js的语句啊?不知道要怎么表达我的意思

cxxjackie 发表于 2024-3-1 00:03:51

xiaooooooo 发表于 2024-2-29 10:27
> 本帖最后由 xiaooooooo 于 2024-2-29 10:30 编辑

> (forum.php ...

get嵌套each、each嵌套get、get嵌套get,这些都可以,把get写成async/await就能避免多层嵌套的尴尬,而each嵌套each我没有测试过,感觉逻辑上很怪,2个each之间并没有先后的概念,这可能会导致一些奇怪的问题。
遍历子节点很简单:
父级jQuery节点.children().each(function() {
    $(this).find(...).text()
});
不依赖jQuery的原生写法:
for (const child of 父节点.children) {
    child.querySelector(...).innerText
}

xiaooooooo 发表于 2024-3-1 00:51:03

本帖最后由 xiaooooooo 于 2024-3-1 00:52 编辑

好的 但是这个网站我发现了另外一个问题,似乎不允许我插入iframe元素在页面上。请教一下这个有办法绕过吗?

主页面脚本:目的是拿到子页面的链接
Facebook帖文列表
https://scriptcat.org/zh-CN/script-show-page/1579

[文章列表页面](https://mbasic.facebook.com/profile/timeline/stream/?end_time=1735718399&profile_id=100064778138289&refid=17&paipv=0&eav=Afa_HIG5Y6cPWOQSXCYuR567clHJWsPNppr0Fi1DqsjoND8llt6wjBi7QVqYV1MT2aY)

子页面脚本:目的是获取正文和留言内容
Facebook帖文详情
https://scriptcat.org/zh-CN/script-show-page/1563
[某一篇示例文章](https://mbasic.facebook.com/story.php?story_fbid=800528328783098&id=100064778138289&eav=AfbYPUBSShMX0J6GJsdC7pfPkgPxgnzzJD00XE0Qg5g6bk3WMPyHOPLjYCC1hHOISGU&_ft_=encrypted_tracking_data.0AY-ys_GC1YwIf1WAZJUWNQ8aJZnLxiw0yTpYD61EyzisWNCiAGr7hC60DueE81E1LaBy75hXRUoZrApx5OJ3Bf5diBO7F8bJsMoL8GJq7ziR7lvCkMkEwabZOHwYe5v70NpWt1LIfJ_69TdHn3ngnZApjOxm41PZ9v1hreLAGaaLtsczV8rVyfpfc8UJU3wm8wZSppl91lfhZeMBfRp0qlAZsBaXC6o2jjFFYtS2PXE_xScm1iO_E7t3QqR91UDmxaAHg2myxcpPFkacq08SJHiYYoy09mEPCEaQjTk9Ibdzyrtjiir3KT76p0TIu-_dlkDZT_OZU6pJ9G9cOCZGsdrzST_uOdxWy7btGQb_9_t0Tw5dwOh4g5Jo7P6mzkeYt3XrCBwI0BbzBsEueRGQY1rFkj1KP9mRLtBr6X9kBteGbQF54Bn-kp4yokStFPmzM_suEGP80obs5HrnvQeEejcJYM3n4VG2DjzAxzkBxqZQlUdrHnVjCl3bXQlBrToZaPzzUc354H2HAuBVsGTen3jrR5fMX71diO-lRUzkJqM-aTSJlcFWiy04EkgYOAtXNOO47YgRmoey9JVyk4LpDsWtOCUK9OAZxAoqdIizi56p91w0Umbs0ywXyOw_MV0pRxREx5S9q-gMLOsNJdHnPsa-kpMcJ9oFgdGnyqvHWC7AF_9_yf28vVZvmUQtUbLm84CjVFORMhTJhrVzRO9qna9le7MNdystj7fIFen2DOLXq5mParyFqT1yzIfXbFD8wI6i8QSAch8hAtdDzzB9jHnF-PBMkdYH6Dn7JqVStGOirQMn1_zOjpL4NIQGkFydhoRsJWYnf4NEL4utBGpHOckomLFBIOoEPl1lItc1h2sR9eANPKCgopya7o1AIss-hELPL_5vIOELJjIiq8psRhgl9wmvpU_vlXOElGXgvOpB6U0RWgqMFBUO3whrvVVdKSsmsuLDiKBKennNN2aYrVArNAABlZAt5Qd6lHHq445YqXokrUxmTZF5Bkj_E-iIQFj2Uh3SIzafBV8dF-hqDdrW5FFtLmShbqNVEWgvuIlNgYAiYrVl6ja9pJTTWsb004pkeGy7O4YeZze1Fan-pvsFEmX-0_Ofl3um-r60Nn-QWUcjEb2OpyuwtLb3aKy751XXOmor5Hposqfnjv8W6n3otf4oZ_bGfaeHZ9BdCoqK1aaqbC8wklLJXvaA27n4SEcWE0bGvo8U0YxlsqQK6elCOsYMn4DZfaKqWS7QQvOpohl2xzijU3-eWMhNRF8krosOJe76I3AIlTStHEWT-M8LbXW0rArX-cZifFyHv0RzBolU1dVP73wSIXK1yhs8QqEg2eap6Jd9seJDK8AOICLOK0MmLu1TqM4KlQylSkATICLCioEF6rrnwXWIAbCt-Z4Bvvd2gGHHSvAeqULlofGk4OPlrNDKYld_IuaikJoL0gz_I-rhngm_lBg1TEsZxsplLXkQc-o8x9m22Z_6SmFdvJTAD0U1bYnlVFsGUC3cgVfumwfg8qVGyJZ2QMrxr2kNz7cqRiClCKtxxrF9ASdM1j7xbTwcvn-jZ-IrXclBtM_zyg5YHlFFjD-dsD_8VQLclMGC4ZIOgOmYdvVix0M--kMusrqnZdJ97pGBvHxvX-3t4tkqn5QXjDDk8Br_WmcG4oV1-kCzlFIZ5732aJPiGdEo5wLFC1Uo4UiNwf87mg6DTOXUaWplWQSwSg&__tn__=%2AW-R&paipv=0)

报错页面:似乎是不允许插入iframe元素在页面上?
!(data/attachment/forum/202403/01/005059xu6pv1cwa1pyvmv0.png)

xiaooooooo 发表于 2024-3-1 00:56:25

cxxjackie 发表于 2024-3-1 00:03
get嵌套each、each嵌套get、get嵌套get,这些都可以,把get写成async/await就能避免多层嵌套的尴尬,而ea ...

感谢大佬 现在好像有另一个更麻烦的问题是网站限制了不允许添加iframe元素

李恒道 发表于 2024-3-1 16:07:28

xiaooooooo 发表于 2024-3-1 00:56
感谢大佬 现在好像有另一个更麻烦的问题是网站限制了不允许添加iframe元素 ...

一般很少情况要添加iframe
为啥有添加iframe的需求

xiaooooooo 发表于 2024-3-1 22:35:44

李恒道 发表于 2024-3-1 16:07
一般很少情况要添加iframe
为啥有添加iframe的需求

因为我想在文章的列表页就直接拿到文章详情内容,但是我又不会其他方法,只能在列表页建立一个iframe,然后把详情页的内容填充进去

cxxjackie 发表于 2024-3-1 23:39:08

xiaooooooo 发表于 2024-3-1 00:51
好的 但是这个网站我发现了另外一个问题,似乎不允许我插入iframe元素在页面上。请教一下这个有办法绕 ...

不是主页面禁止插入iframe,而是子页面禁止被作为iframe插入,有些网站会这么设置,这是一种安全策略,无法绕过,至少无法在正规的浏览器里绕过,除非你通过其他手段篡改响应头(如抓包软件),而这显然不是油猴脚本能做到的。

李恒道 发表于 2024-3-1 23:53:32

xiaooooooo 发表于 2024-3-1 22:35
因为我想在文章的列表页就直接拿到文章详情内容,但是我又不会其他方法,只能在列表页建立一个iframe,然 ...

这种更推荐gmxhr读取内容然后直接匹配内容
不创建firame

xiaooooooo 发表于 2024-3-2 00:10:34

本帖最后由 xiaooooooo 于 2024-3-2 00:11 编辑

李恒道 发表于 2024-3-1 23:53
这种更推荐gmxhr读取内容然后直接匹配内容
不创建firame
好的 感谢道哥 我查一下油猴指南
这个思路我以前想过 当时好像是卡在了不知道如何携带cookie去进行xhr访问
页: 1 [2] 3
查看完整版本: 使用脚本获取文本内容的问题