python - 提取额外的内容 python 请求
问题描述
我正在寻找从网页中提取生成的内容。
我正在使用 python 3 中的库请求返回如下页面
import requests
url = "https://app.updateimpact.com/treeof/org.json4s/json4s-
native_2.11/3.5.2"
html_doc = requests.get(url)
print(html_doc.text)
检索文本似乎只是填充。我应该使用哪些工具来深入了解内容并从中提取信息?
解决方案
Javascript 需要在页面上运行以提供大部分内容。使用像 selenium 这样的方法将允许它运行。请注意,需要额外的等待条件来确保加载某些内容。然后,您可以使用 selenium 语法提取信息或将 html 从 page_source 转储到 BeautifulSoup。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup as bs
d = webdriver.Chrome()
d.get('https://app.updateimpact.com/treeof/org.json4s/json4s-native_2.11/3.5.2')
dependencies = WebDriverWait(d, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR , '.stats-list')))
print(dependencies)
soup = bs(d.page_source, 'lxml')
print(soup.select_one('#tree').text) # example
推荐阅读
- php - 翻译后出现额外的 HTML 标签
- java - 在多行上使用正则表达式进行 Html 解析
- laravel - 如何更改 Laravel-Nova 动作名称?
- angular - Vs 代码中角度的 Intellisense 不起作用
- javascript - 尝试从节点服务器检索 json 对象时获取“Cannot GET /”
- mongodb - 过滤 mongo 文档和项目特定字段
- visual-studio-code - 将启用/禁用扩展设置复制到另一个工作区
- blender - 如何使 3d 文本出现在搅拌机的相机视图中
- docker - 如何从命令行构建由 Visual Studio 2019 创建的 dockerfile?
- java - 将抓取的数据保存到文件