<p>
<p>
使用 Python 进行动态内容抓取
<p>从静态 HTML 获取纯文本很简单,但动态内容则不同。 JavaScript 嵌入的内容无法立即被 Python 的 HTTP 请求库(如 urllib2)访问。
<p>
访问动态内容
<p>要访问动态内容,Python 可以利用模拟 Web 的外部工具浏览器。这些工具执行 JavaScript 并返回渲染的页面内容。
<p>
1. Selenium 与 PhantomJS:
- 安装 PhantomJS(无头浏览器)并确保它在您的路径中。
- 使用 Selenium 的 Python 库将 PhantomJS 实例化为 Web 驱动程序。
- 导航到目标页面并找到以下元素兴趣。
<p>
2. dryscape(仅限 Python 2):
- 使用 pip 安装 dryscrape。
- 打开 dryscrape 会话并访问目标页面。
- 检索渲染的页面内容作为string.
<p>
示例
<p>考虑使用动态 JavaScript 的示例 HTML 页面:
<p>
<p>
没有 JS支持:
import requests
from bs4 import BeautifulSoup
response = requests.get(my_url)
soup = BeautifulSoup(response.text)
print(soup.find(id="intro-text"))
<p>
输出:
<p>
<p>
有JS支持(硒):
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(my_url)
print(driver.find_element_by_id("intro-text").text)
<p>
输出:
Yay! Supports javascript
以上是Python 如何抓取动态网站内容?的详细内容。更多信息请关注PHP中文网其他相关文章!