У меня проблемы с моим скриптом Python. Все, что я хочу сделать, это разобрать элемент div с значением id: value и сохранить все измененные значения. Значение этого элемента генерируется javascript. Это означает, что значение элемента зависит от пользовательского ввода. Чтобы быть более конкретным, элемент html выглядит так:
<div id="value">...Here the frequently changed value generated by javascript...</div>
Мой скрипт python следующий:
from bs4 import BeautifulSoup
import urllib
x=urllib.urlopen("http://example.com")
s = x.read()
soup = BeautifulSoup(s)
m = soup.find("div",{"id":"value"})
val = m.text
print val
Результат - Нет, но на веб-странице изменения очевидны! Пожалуйста, помогите мне разобраться.
Если значение генерируется javascript - самым простым решением будет использование реального браузера для обхода веб-страницы. Это поможет селен. Вот простой пример:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://example.com')
element = browser.find_element_by_id('value')
print element.text
x.getcode()
чтобы убедиться, что вы действительно загружаете страницу (она должна возвращать 200).