最简单/初学者友好的方法,使Scrapy渲染Javascript内容



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

我想把内容写在右边的标题下。这是我在请求和BS中试用的示例代码,它呈现了一个空列表,因为它无法呈现Javascript。默认设置的Scrapy也找不到它。下面的代码返回空字符串,因为它没有呈现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没有现成的解决方案。最简单的方法是使用scrapy splash插件。

初始html中缺少的数据通常意味着它被加载到不同的请求中。仔细查看chrome开发工具中的请求,很快就会给出请求。如果你花时间了解这个UI是如何工作的(第二个请求的号码是57871和1621203973679(,你甚至不需要渲染任何东西。

最新更新