Получить исходный код HTML, в том числе результат JavaScript и аутентификации

1

Я создаю веб-скребок и должен получить источник страницы html, поскольку он действительно отображается на странице. Тем не менее, я получаю только ограниченный источник html, который не включает необходимую информацию. Я думаю, что я либо вижу, что он загружен до javascript, либо, может быть, я не получу полную информацию, потому что у меня нет правильной аутентификации? Мой результат такой же, как "источник просмотра" в Chrome, когда то, что я хочу, это то, что показывает элемент Chrome "проверка элемента". Мой тест - cimber.dk после ввода информации о рейсе и поиска.

Я кодирую в python и пробовал библиотеку urllib2. Затем я услышал, что Селен хорош для этого, поэтому я тоже это пробовал. Тем не менее, это также дает мне тот же ограниченный источник страницы.

Это то, что я пробовал с urllib2 после использования Firebug, чтобы увидеть параметры. (Я удалил все свои файлы cookie после открытия cimber.dk, поэтому начал с "чистого листа" )

url = 'https://www.cimber.dk/booking/'  
values = {'ARRANGE_BY' : 'D',...} #one for each value
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())  
#Using HTTPRedirectHandler instead of HTTPCookieProcessor gives the same.  
urllib2.install_opener(opener)  
request = urllib2.Request(url)  
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0) Gecko/20100101 Firefox/4.0')]  
request.add_header(....) # one for each header, also the cookie one
p = urllib.urlencode(values)  
data = opener.open(request, p).read() 
# data is now the limited source, like Chrome View Source 

#I tried to add the following in some vain attempt to do a redirect.  
#The result is always  "HTTP Error 400: Bad request"

f = opener.open('https://wftc2.e-travel.com/plnext/cimber/Override.action')  
data = f.read()  
f.close()
Теги:
authentication
web-crawler

1 ответ

2

Большинство таких библиотек не поддерживают javascript.

Если вам нужен javascript, вам нужно либо автоматизировать существующий браузер, либо движок браузера, либо получить действительно монолитную большую мускулистую библиотеку, которая по сути является продвинутым веб-искателем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню