首页 > 解决方案 > 提取额外的内容 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)

检索文本似乎只是填充。我应该使用哪些工具来深入了解内容并从中提取信息?

标签: pythonweb-scrapingpython-requestsscraper

解决方案


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

推荐阅读