Simplest/Beginner-friendly 使 Scrapy 渲染 Javascript 内容的方法

Simplest/Beginner-friendly method to make Scrapy render Javascript content

在这里考虑这个网站:https://dlnr.hawaii.gov/dsp/parks/hawaii/akaka-falls-state-park/

我想抓取右侧标题下的内容。这是我使用 Requests 和 BS 尝试的示例代码,它呈现一个空列表,因为它无法呈现 Javascript。使用默认设置的 Scrapy 也找不到它。 returns 下面的代码是空字符串,因为它没有呈现 javascript.

import requests as req
from bs4 import BeautifulSoup as bs

r = req.get('https://dlnr.hawaii.gov/dsp/parks/hawaii/akaka-falls-state-park/').text
soup = bs(r)

par = soup.find('h3', text= 'Facilities')

for sib in par.next_siblings:
    print(sib.text)

我想知道Scrapy最简单的渲染方式Javascript。查看开发工具中的响应似乎工作量太大,尤其是当您使用自动抓取来捕获多个元素时。 Scrapy-splash 似乎有点复杂,scrapy-selenium 不再有效,但我对这两种选择都持开放态度。

非常感谢任何帮助。谢谢

Scrapy 没有开箱即用的解决方案。最简单的方法是使用 scrapy-splash 插件。

初始 html 中的缺失数据通常意味着它是在不同的请求中加载的。仔细查看 chrome 开发人员工具中的请求,很快就会发现 request。如果您花时间了解此 UI 的工作原理(从哪里获取第二个请求的数字 57871 和 1621203973679),您甚至不需要渲染任何内容。