Как парсить динамические web — сайты с помощью Python 3?

Задача: парсить сайты и собирать с них информацию о наличие определенной модели товара и и ее стоимости.
Цель: на выходе получить CSV файл с полями Фирма продавец\Бренд\Модель\Цена

В общем с задачей справился, возникло одно НО и заключается оно в следующем, некоторые сайты при использовании:
requests.get('url')
отдают не весь код страницы, как я понял дело в том, что часть кода генерируется javascript.
как получить полный код страницы?
По возможности приведете примеры кода реализующие получение всего кода с web-страницы

P.S.: Помогите пожалуйста, четвертую ночь в компании с Гуглом я не вынесу :(
  • Вопрос задан
  • 25476 просмотров
Пригласить эксперта
Ответы на вопрос 4
@DannyFork
Я Иcпользую связку Selenium и PhantomJs илиChrome
Он предварительно рендерит страницу dв браузере,что позволяет парсить любые динамические страницы.

Пример парсинга Ютуба
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.youtube.com/results?search_query=" + "guitar+lessons")

results = driver.find_elements_by_xpath('//div[@class="yt-lockup-content"]')

print(len(results))

for result in results:
    video = result.find_element_by_xpath('.//h3/a')
    title = video.get_attribute('title')
    url = video.get_attribute('href')
    print("{} ({})".format(title, url))
driver.quit()


Результат:
Guitar Lessons for Beginners in 21 days #1 | How to play guitar for beginners (https://www.youtube.com/watch?v=orp7WHibnaU)
GuitarLessons.com (https://www.youtube.com/user/guitarlessonscom)
Play TEN guitar songs with two EASY chords | Beginners first guitar lesson (https://www.youtube.com/watch?v=Jg-BRpn38L8)
....more
Ответ написан
Комментировать
sim3x
@sim3x
Тебе не нужно получать всю страницу
Найди как формируются необходимые тебе данные и запрашивай их
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
Scrapy если по-взрослому, а так и requests, как sim3x советует, достаточно
Ответ написан
@asd111
Есть два способа.
1. В Chrome нажимаешь F12 идешь во вкладку Network, перезагружаешь страницу и смотришь откуда что грузится.
2. Взять Selenium для python и в качестве драйвера использовать phantomjs stackoverflow.com/questions/13287490/is-there-a-wa...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы