gpt4 book ai didi

javascript - 使用 Scrapy 和 Splash 抓取 JS 渲染页面的问题

转载 作者:行者123 更新时间:2023-11-30 21:12:42 26 4
gpt4 key购买 nike

我正在尝试抓取 this page其中包括根据 chrome 的以下 html

<p class="title">

Orange Paired

</p>

这是我的蜘蛛:

import scrapy
from scrapy_splash import SplashRequest

class MySpider(scrapy.Spider):
name = "splash"
allowed_domains = ["phillips.com"]
start_urls = ["https://www.phillips.com/detail/BRIDGET-RILEY/UK010417/19"]
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(
url,
self.parse,
endpoint='render.json',
args={'har': 1, 'html': 1}
)
def parse(self, response):
print("1. PARSED", response.real_url, response.url)
print("2. ",response.css("title").extract())
print("3. ",response.data["har"]["log"]["pages"])
print("4. ",response.headers.get('Content-Type'))
print("5. ",response.xpath('//p[@class="title"]/text()').extract())

这是 scrapy runspider spiders/splash_spider.py 的输出

2017-08-31 09:48:18 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
1. PARSED http://localhost:8050/render.json https://www.phillips.com/detail/BRIDGET-RILEY/UK010417/19
2. ['<title>PHILLIPS : Bridget Riley, Orange Paired</title>', '<title>Page 1</title>']
3. [{'title': 'PHILLIPS : Bridget Riley, Orange Paired', 'pageTimings': {'onContentLoad': 3832, '_onStarted': 1, '_onIframesRendered': 4667, 'onLoad': 4664, '_onPrepareStart': 4664}, 'id': '1', 'startedDateTime': '2017-08-31T07:48:18.986240Z'}]
4. b'text/html; charset=utf-8'
5. []
2017-08-31 09:48:23 [scrapy.core.engine] INFO: Closing spider (finished)

为什么我得到 5 的空输出?

我也不明白的是 Splash 似乎没有呈现上面链接的页面 enter image description here

但它呈现顶级主页 enter image description here

最佳答案

在这种情况下,好的起点是查看 FAQ Splash 文档的一部分。事实证明,在您的情况下,您需要 disable Private mode对于 Splash,可以通过 Docker 的 --disable-private-mode 启动选项,或者通过在 LUA 脚本中设置 splash.private_mode_enabled = false

一旦您禁用私有(private)模式,页面就会正确呈现。

关于javascript - 使用 Scrapy 和 Splash 抓取 JS 渲染页面的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45976331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com