Próbuję zeskrobać dane ze strony publicznej asx.com.auWeb scraping - jak uzyskać dostęp do treści renderowanych w JavaScript przez Angular.js?
Strona http://www.asx.com.au/asx/research/company.do#!/ACB/details zawiera div
z klasą „Widok-content”, który posiada informacje potrzebne:
ale kiedy staram się, by zobaczyć tę stronę za pomocą Pythona urllib2.urlopen
że div jest pusta:
import urllib2
from bs4 import BeautifulSoup
url = 'http://www.asx.com.au/asx/research/company.do#!/ACB/details'
page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page, "html.parser")
contentDiv = soup.find("div", {"class": "view-content"})
print(contentDiv)
# the results is an empty div:
# <div class="view-content" ui-view=""></div>
Czy to możliwe, aby uzyskać dostęp zawartość tego div programowo?
Edytuj: zgodnie z komentarzem wydaje się, że treść jest renderowana przez Angular.js
. Czy możliwe jest wyzwolenie renderowania tej treści przez Python?
widzę 'ng-scope' - to nazwa przez stosowanie ram' AngularJS' (lub podobnego ram) więc ta strona jest generowana przez JavaScript. – furas
@furas biorąc pod uwagę, że być może jest to duplikat http://stackoverflow.com/questions/30673447/fetch-text-from-web-withangular-js-tags-such-as-ng-view i potrzebuję używać Selenium lub podobnego? –
Nie potrzebujesz selenu, który już posiada adres URL w mojej odpowiedzi i możesz go uzyskać za pomocą 'urrlib' i' json' :) Pracuję nad przykładem kodu. – furas