首页 > web前端 > js教程 > 如何在 Python 中抓取动态 JavaScript 渲染内容?

如何在 Python 中抓取动态 JavaScript 渲染内容?

DDD
发布: 2024-12-22 09:58:04
原创
339 人浏览过

How to Scrape Dynamic JavaScript-Rendered Content in Python?

如何在 Python 中抓取 JavaScript 生成的动态内容

在 Python 中使用 urllib2.urlopen(request) 等静态方法时,从网页抓取动态内容可能会带来挑战。此类内容通常由嵌入页面中的 JavaScript 生成和执行。

解决此问题的一种方法是利用 Selenium 框架和 Phantom JS 作为 Web 驱动程序。确保 Phantom JS 已安装,并且其二进制文件在当前路径中可用。

这里有一个示例来说明:

import requests
from bs4 import BeautifulSoup
response = requests.get(my_url)
soup = BeautifulSoup(response.text)
soup.find(id="intro-text") # Result: <p>
登录后复制

此代码将在没有 JavaScript 支持的情况下检索页面。要使用 JS 支持进行抓取,请使用 Selenium:

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(my_url)
p_element = driver.find_element_by_id(id_='intro-text')
print(p_element.text) # Result: 'Yay! Supports javascript'
登录后复制

或者,您可以使用专门为抓取 JavaScript 驱动的网站而设计的 Python 库,例如 dryscrape:

import dryscrape
from bs4 import BeautifulSoup
session = dryscrape.Session()
session.visit(my_url)
response = session.body()
soup = BeautifulSoup(response)
soup.find(id="intro-text") # Result: <p>
登录后复制

以上是如何在 Python 中抓取动态 JavaScript 渲染内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板