hj170520 发表于 2021-5-3 12:20

python爬虫:爬取某网页但抓取不到数据

本帖最后由 hj170520 于 2021-5-3 14:39 编辑

网站地址:https://idiom.wlps.kl.edu.tw/

第一个问题:实际上,想抓数据的时候,通过F12抓包发现,根本抓不到数据。这是不是传说中的反爬机制?{:301_979:}

一开始的界面是

第二个问题:但如果我在里面比如搜索“袞袞諸公”

然后当我刷新这个网页或者重新输入https://idiom.wlps.kl.edu.tw/
界面仍然是

这个就引起我的一个怀疑,当我刷新这个界面的时候我没有给他们服务器发送封包,这是怎么做到储存我这个查询数据的呢?(难道是这个网站可以调用本地缓存?)

uuling 发表于 2021-5-3 12:28

数据通过异步加载的,通过开发者调试工具可以看到https://idiom.wlps.kl.edu.tw/idiom.json? 这个请求,这里面应该是你要的数据

glces 发表于 2021-5-3 12:33

这个网页的表格是一个叫Datatables的前端组件, 数据是异步加载的, 你看抓包的其他链接就能看到异步返回的数据了

hj170520 发表于 2021-5-3 12:33

uuling 发表于 2021-5-3 12:28
数据通过异步加载的,通过开发者调试工具可以看到https://idiom.wlps.kl.edu.tw/idiom.json? 这个请求, ...

请问,您是怎么查看的!我没有找到!我太菜了{:301_973:}

是这个地方吗?

hj170520 发表于 2021-5-3 12:34

glces 发表于 2021-5-3 12:33
这个网页的表格是一个叫Datatables的前端组件, 数据是异步加载的, 你看抓包的其他链接就能看到异步返回的 ...

嚯,长知识了。{:301_993:}

hj170520 发表于 2021-5-3 12:37

glces 发表于 2021-5-3 12:33
这个网页的表格是一个叫Datatables的前端组件, 数据是异步加载的, 你看抓包的其他链接就能看到异步返回的 ...

但我试了一下,还是不会{:301_972:}
看样子还要学好javascript才行。

fanvalen 发表于 2021-5-3 12:39

这忘站的内容是由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应该能找到

aonima 发表于 2021-5-3 12:39

异步数据加载

hj170520 发表于 2021-5-3 12:45

fanvalen 发表于 2021-5-3 12:39
这忘站的内容是由js加载的,
下面代码可以看到请求json数据
function DisplayData ...

明白了!这下子看懂了从哪里来了。
我还没学过javascript,看得心烦!
大佬们能立马定位到,太强了{:301_993:}

呱呱生 发表于 2021-5-3 14:31

大牛,学习py要多久
页: [1]
查看完整版本: python爬虫:爬取某网页但抓取不到数据