gpt4 book ai didi

xpath - 使用 xpath 和 import.io 从站点中的 javascript 对象中提取值

转载 作者:行者123 更新时间:2023-12-03 15:55:18 24 4
gpt4 key购买 nike

我想提取站点中 javascript 对象提供的数字,但我真的不明白我在做什么。

我使用 import.io 网站和其他教程网站中的相似示例和指南尝试了不同的版本,但我只得到了两个结果中的一个:提取给定页面上的所有数字或什么都没有。

我试过,例如//[contains(.,"Unikālo apmeklējumu skaits:")]@type ; //[contains(.,"Unikālo apmeklējumu skaits:")] .很可能有必要在其中添加其他内容,但我只是不知道。

我有兴趣从中提取的链接是:https://www.ss.lv/msg/lv/clothes-footwear/womens-clothes/trousers/ikcbb.html必要的信息是文本“Unikālo apmeklējumu skaits:”后的数字,由 javascript 提供。

希望有人能帮我解决这个问题。

最佳答案

对于网络抓取的新手来说,这应该是一项艰巨的任务,我将尝试解释一下。首先,到达该位置的 xpath 可能是这样的:

'//td[@class="msg_footer" and contains(text(), "Unik")]'

现在您有了那个标签(以及它包含的内容),但是如果您检查它不包含您需要的数字,则该内容正在使用 javascript 动态加载,而 javascript 是这个:

<script type="text/javascript"><!-- 

var ss_w='rādīt numuru';
document.write( '<scr'+'ipt id="contacts_js" src="/js/2015-10-27/37863/VHoBGkpqSV8bfwkdTX9AXEpZXCVDlASIQ1ZV3kK.js?t='+new Date()+'"></scr'+'ipt>' );

--></script>

可以从使用此 xpath 的响应中获取:

'//script[contains(text(), "contacts_js")]/text()'

从那个字符串,你应该复制 src 中的 url,例如这个 url:

/js/2015-10-27/37863/VHoBGkpqSV8bfwkdTX9AXEpZXCVDlASIQ1ZV3kK.js?t=

并将当前日期添加到末尾,因为 javascript 使用 new Date() 创建它。然后你应该向那个 url 发出请求(添加以前的响应域),比如:

https://www.ss.lv/js/2015-10-27/37863/VHoBGkpqSV8bfwkdTX9AXEpZXCVDlASIQ1ZV3kK.js?t=Wed%20Oct%2028%202015%2020:56:42%20GMT-0500%20(PET)

检查日期是否经过 urlencoded。它应该返回如下响应:

var PHONE_CNT=-1;var PHONE_CNT2=-1;var PHONE_CNT3=-1;var EMAIL_CNT=-1;var SHOW_CNT=22;var PH_c="";var PH_1=0;var PH_2=0;var PH_3=0;

pcc_id=0;PH_1=gpzd("JTg3aCU3QyU1QnolN0MlN0JYcWh6JTVCdCU5NSU4QyU5MnV4ayU5QXElN0IlOTQlNUNweiU5MGtvJTdCJThFJTVF","55937369");

您可以在其中检查 SHOW_CNT 中的值是否是您想要的数字。

如果您想知道我是如何找出哪个请求和哪个脚本填充该响应标记的,那么我就是使用 firebug,在所有涉及调用您的 URL 的响应,该 URL 指向我指定的请求,然后尝试检查谁在请求该请求。

希望对您有所帮助。

关于xpath - 使用 xpath 和 import.io 从站点中的 javascript 对象中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com