python爬虫:爬取某网页但抓取不到数据
本帖最后由 hj170520 于 2021-5-3 14:39 编辑网站地址:https://idiom.wlps.kl.edu.tw/
第一个问题:实际上,想抓数据的时候,通过F12抓包发现,根本抓不到数据。这是不是传说中的反爬机制?{:301_979:}
一开始的界面是
第二个问题:但如果我在里面比如搜索“袞袞諸公”
然后当我刷新这个网页或者重新输入https://idiom.wlps.kl.edu.tw/
界面仍然是
这个就引起我的一个怀疑,当我刷新这个界面的时候我没有给他们服务器发送封包,这是怎么做到储存我这个查询数据的呢?(难道是这个网站可以调用本地缓存?) 数据通过异步加载的,通过开发者调试工具可以看到https://idiom.wlps.kl.edu.tw/idiom.json? 这个请求,这里面应该是你要的数据 这个网页的表格是一个叫Datatables的前端组件, 数据是异步加载的, 你看抓包的其他链接就能看到异步返回的数据了 uuling 发表于 2021-5-3 12:28
数据通过异步加载的,通过开发者调试工具可以看到https://idiom.wlps.kl.edu.tw/idiom.json? 这个请求, ...
请问,您是怎么查看的!我没有找到!我太菜了{:301_973:}
是这个地方吗? glces 发表于 2021-5-3 12:33
这个网页的表格是一个叫Datatables的前端组件, 数据是异步加载的, 你看抓包的其他链接就能看到异步返回的 ...
嚯,长知识了。{:301_993:} glces 发表于 2021-5-3 12:33
这个网页的表格是一个叫Datatables的前端组件, 数据是异步加载的, 你看抓包的其他链接就能看到异步返回的 ...
但我试了一下,还是不会{:301_972:}
看样子还要学好javascript才行。 这忘站的内容是由js加载的,
下面代码可以看到请求json数据
function DisplayDataTable(dataSet) {
$('#idiom').DataTable( {
data: dataSet,
"bStateSave": true,
"fnStateSave": function (oSettings, oData) {
localStorage.setItem( 'DataTables_'+window.location.pathname, JSON.stringify(oData) );
},
"fnStateLoad": function (oSettings) {
return JSON.parse( localStorage.getItem('DataTables_'+window.location.pathname) );
}
} );
}
$(document).ready(function() {
getCache('/idiom.json?1585807132').then(function (data) {
DisplayDataTable(data);
$(".spinner").hide();
});
$('#idiom').on('click', 'tbody tr', function() {
var id = $(this).children('td:first').text();
var baseURI = "/";
window.location = baseURI+id;
return false;
});
} );
</script>
getCache('/idiom.json?1585807132').then(function (data) 这就是请求连接 f12应该能找到 异步数据加载 fanvalen 发表于 2021-5-3 12:39
这忘站的内容是由js加载的,
下面代码可以看到请求json数据
function DisplayData ...
明白了!这下子看懂了从哪里来了。
我还没学过javascript,看得心烦!
大佬们能立马定位到,太强了{:301_993:} 大牛,学习py要多久
页:
[1]