在下一页上,底部的数字2,3 ......都指向同一个网址。然而,将显示不同的表格。有谁知道这里使用了哪些具体技术?如何使用原始HTTP请求在这些表中提取信息(我不想使用无头浏览器这样做)?感谢。
https://services27.ieee.org/fellowsdirectory/home.html#results_table
答案 0 :(得分:1)
使用Javascript(AJAX)对服务器进行HTTP调用。
如果您在开发者工具中检查网络活动,则会看到对以下网址的调用:https://services27.ieee.org/fellowsdirectory/getpageresultsdesk.html
。
他们从Javascript发送数据:
selectedJSON: {"alpha":"ALL","menu":"ALPHABETICAL","gender":"All","currPageNum":1,"breadCrumbs":[{"breadCrumb":"Alphabetical Listing "}],"helpText":"Click on any of the alphabet letters to view a list of Fellows."}
inputFilterJSON: {"sortOnList":[{"sortByField":"fellow.lastName","sortType":"ASC"}],"typeAhead":false}
pageNum: 2
您可以看到pageNum
属性。这就是他们请求特定结果页面的方式。
答案 1 :(得分:1)
当您单击数字按钮时,某些Javascript代码会向https://services27.ieee.org/fellowsdirectory/getpageresultsdesk.html;jsessionid=yoursessionid发出包含pageNum: 3
的formData和其他一些格式参数的AJAX POST请求。服务器响应加载到页面中的表行的HTML块。您可以在浏览器的网络检查器(在开发人员工具中)查看该网页上的请求,以确切了解HTTP请求的发生情况。
答案 2 :(得分:1)
该链接有一个onclick处理程序,可以更改href onclick。去 https://services27.ieee.org/fellowsdirectory/home.html#results_table 在控制台中,输入: window.location的= getDetailProfileUrl(' lOH1bDxMyI1CCIxo5ODlGg ==&#39); 这重定向到Jules的Aarons。 现在返回并输入window.location = getDetailProfileUrl(' JJuL3J00kHdIUozoVAgKdg =='); 这打开了Aarts,Ronald。 基本上,当点击链接时,JavaScript会更改链接的URL。
要使用php提取它们,请使用file_get_contents()函数。
echo file_get_contents('https://services27.ieee.org/fellowsdirectory/home.html#results_table');
这将打印出页面。现在用JavaScript抓它。
echo "<script>console.log(document.querySelectorAll('.name'));</script>";
希望这有帮助。