Извлечение дополнительных запросов Content 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)

Однако текст извлечения кажется просто дополнением. Какие инструменты я должен искать, чтобы углубиться в контент и извлечь из него информацию?


person Steve    schedule 16.02.2019    source источник


Ответы (2)


Javascript должен работать на странице, чтобы предоставить большую часть контента. Использование такого метода, как селен, позволит этому работать. Обратите внимание, что для обеспечения загрузки определенного содержимого требуется дополнительное условие ожидания. Затем вы можете использовать синтаксис селена для извлечения информации или вывода 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
person QHarr    schedule 16.02.2019
comment
Интересно. Должен быть какой-то файл cookie, содержащий таймер, потому что URL-адрес работает некоторое время. - person Steve; 17.02.2019
comment
Я только что заметил, что в вашем URL есть ошибка, не должно быть пробела между json4s- || нативный 'app.updateimpact.com/treeof/org. json4s/json4s-native_2.11/3.5.2' - person Steve; 18.02.2019
comment
Это было неосторожно с моей стороны! Спасибо. Дай мне взглянуть еще раз. - person QHarr; 18.02.2019
comment
это похоже на точку. Хотя у меня возникают проблемы с его запуском, так как путь к моему драйверу Chrome выдает ошибки. Я указываю на его местоположение в пакете сайта python, но мне нужно будет больше погуглить, чтобы понять, почему он не работает. Отмечу решение как ответ, как только смогу его подтвердить. :) - person Steve; 18.02.2019
comment
Без проблем. Что-нибудь еще, чем я могу помочь, дайте мне знать. - person QHarr; 18.02.2019
comment
это в точку. Можете ли вы порекомендовать хороший источник для получения документации по этому вопросу? Я хочу изучить а) разбор возвращаемого текста, чтобы он не был одной строкой, и б) как открыть некоторые дочерние клики, чтобы я мог копаться в корне возвращаемого типа дерева - person Steve; 18.02.2019