scrapy 无法从网页中提取某些标记

3duebb1j  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(162)

我从这个网址抓取了一些数据

https://www.degruyter.com/search?query=*&startItem=0&pageSize=10&sortBy=relevance&documentTypeFacet=journal

当我尝试获取日志名称时,它没有给出任何信息。一些标记给出响应,但日志名称的标记没有给出任何信息。类名为“resultTitle”的div有日志名称,但当我在Scrappy中尝试以下操作时
response.css("div.resultTitle").get()什么都不给,我也试过BeautifulSoup

ki1q1bka

ki1q1bka1#

看起来该块包含您想要的内容“resultTitle”由JS加载,即xxxxxxxx-main.js

...
        a.loginContentPromise.then((()=>{
            const e = document.querySelector("#session-redirect");
            if (e) {
                const t = e.dataset.destination || "/";
                window.location.replace(t)
            }
        }
        )),
...

如果您通过“wget”命令而不是使用Web浏览器发布请求,您可以找到如下代码块。

...
    <main id="main" class='language_en px-0 min-vh-100 container-fluid'>

    <div id="session-redirect" data-destination='/search?query=*&amp;startItem=0&amp;pageSize=10&amp;sortBy=relevance&amp;documentTypeFacet=journal'></div>

    </main>
...

您可以读取“xxxxxxxx-main.js”JS代码并实现它。或者只是简单地使用Splash来处理它。
附言

wget -O search_result.html https://www.degruyter.com/search\?query\=\*\&startItem\=0\&pageSize\=10\&sortBy\=relevance\&documentTypeFacet\=journal

相关问题