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),您甚至不需要渲染任何内容。
在这里考虑这个网站: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),您甚至不需要渲染任何内容。