gpt4 book ai didi

python - Scrapy不会选择嵌入元素

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:40 24 4
gpt4 key购买 nike

我使用 Scrapy 来实际了解网站中是否有 Flash 内容。我使用以下代码:

hxs = HtmlXPathSelector(response)

(len(hxs.select('//embed[contains(@src,".swf")]')) > 0 or len(hxs.select('//object[contains(@data,".swf")]')) > 0 or len(hxs.select('//object/param[contains(@value,".swf")]')) > 0)

但总是返回 false。我意识到即使我使用

 hxs.select('//embed')

当我确定网站中有任何元素时,它不会选择任何元素。谢谢

最佳答案

嵌入元素很可能是在执行一些 JS 代码后出现的。我尝试在 YouTube 视频上运行 scrapy shell,并遇到了与您相同的问题。您可以通过使用实际执行 JS 代码的库来解决此问题,例如 Selenium 。这是一些可以在普通 scrapy 蜘蛛中使用的示例代码。

import time
from selenium import webdriver

browser = webdriver.Firefox()
browser.get('https://www.youtube.com/watch?v=e_44G-kE8lE') # Load page
time.sleep(3) # Make sure we had enough time to load everything
browser.find_elements_by_xpath("//embed")

运行最后一行代码后,我确实看到了一个元素,而使用 scrapy hxs 时我没有看到。如果您最终使用此解决方案 this snippet将 Selenium 与 scrapy 集成应该会有所帮助。

关于python - Scrapy不会选择嵌入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15046674/

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