gpt4 book ai didi

python - 使用python快速抓取动态内容

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

我正在尝试使用在 JavaScript 中生成的 Python 动态内容进行抓取(该视频的观看次数和评论数量:http://v.youku.com/v_show/id_XMTM5NTI3NDY3Ng==.html?from=y1.3-idx-uhome-1519-20887.205805-205902.5-2)。

我熟悉 BeautifulSoup(运行约 0.1 秒,但没有 JavaScript 评估)和 Selenium(3 秒以上,即使我停用 CSS、图像等,但解释 JS)。

有没有办法在不实际使用浏览器的情况下在 Python 中抓取 JavaScript 函数的结果(假设这会减慢 Selenium 的速度)?

我的 Selenium 代码如下:

# coding=utf-8

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys

firefox_profile=webdriver.FirefoxProfile()
#firefox_profile.set_preference('permissions.default.stylesheet',2)
firefox_profile.set_preference('permissions.default.image',2)
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so',2)
driver = webdriver.Firefox(firefox_profile=firefox_profile)
time.sleep(7)

start=time.time()
def getYoukuVideoStats(youkuVideoUrl):
driver.get(youkuVideoUrl)
text= driver.find_element_by_id("allnum_cmt").text
print text

youku_video_urls_full=["http://v.youku.com/v_show/id_XOTU2Nzc3NDYw.html"]

for youkuVideoUrl in youku_video_urls_full:
try:
getYoukuVideoStats(youkuVideoUrl)
print youkuVideoUrl
except Exception, e:
print "Error with video: "+youkuVideoUrl
print str(e)

print time.time()-start

最佳答案

您确实需要使用浏览器来呈现 JS,但您可以使用 headless 浏览器,例如 phantomjs .这将加快您的运行时间,并且您不会看到浏览器打开。

关于python - 使用python快速抓取动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34283321/

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