Я пишу веб-парсер с запросами и BeautifulSoup, и в DOM есть элемент, который я не могу найти.
Вот что я делаю:
import requests
from bs4 import BeautifulSoup
r = requests.get('http://www.decitre.fr/rechercher/result/?q=victor+hugo&search-scope=3')
soup = BeautifulSoup(r.text)
Элемент, который я не могу найти, - это «старая цена» (та, которая зачеркнута), которую я вижу, когда проверяю DOM с помощью инструмента разработчика браузера.
soup.find_all(class_='old-price') # returns [], no matter if I specify "span"
Более того, я не вижу ни строки «старая цена» в супе, ни результата запроса:
'old-price' in soup.text # False
'old-price' in r.text # False
Я не вижу этого, когда тоже получаю исходник с wget
.
Я могу получить его родительский элемент div, но не могу найти внутри него дочерние элементы цены:
commands = soup.find_all(class_='product_commande')
commands[0].find_all('old-price') # []
Так что я понятия не имею, что происходит. Что мне не хватает?
- я плохо использую request / BeautifulSoup? (Я не уверен, возвращает ли r.text полный html)
- эта html-часть сгенерирована с помощью кода javascript? если да, то как я могу это узнать и есть ли способ получить полный HTML?
огромное спасибо
old-price
создается после выполнения некоторогоjavascript
кода. - person Paulo Bu   schedule 06.11.2013