我正在尝试使用Scrapy从以下url获取所有当前WWE超级明星的名字:http://www.wwe.com/superstars 但是,当我运行scraper时,它不返回任何名称。我相信(通过尝试其他模块的问题),问题是Scrapy没有找到页面中的所有html元素。我试图解决请求和漂亮汤的问题,当我查看请求得到的html时,它缺少了我在浏览器检查器中看到的html的重要方面。包含名称的html如下所示:
<div class="superstars--info"> == $0
<span class="superstars--name">name here</span>
</div>
我的代码张贴在下面。是不是我做错了什么事导致这件事不起作用?在
^{pr2}$
因为内容是由javascript生成的,所以有两个选择:使用类似
selenium
来模拟浏览器并解析html内容,或者如果可以的话,直接查询API。在在这种情况下,这个简单的解决方案有效:
输出(前10条记录):
^{pr2}$听起来这个网站有动态内容,可能是用javascript和/或xhr调用加载的。看看splash这是一个javascript呈现引擎,它的行为很像幻影js。如果你知道如何使用docker,splash的设置非常简单。完成splash设置后,您必须使用scrapy-splash插件将其与scrapy集成。在
相关问题 更多 >
编程相关推荐