Я строю веб-скребок, и мне нужно получить исходный HTML-код, как он отображается на странице. Однако я получаю только ограниченный источник HTML, который не содержит необходимой информации. Я думаю, что я либо вижу его предварительно загруженным javascript, либо, может быть, я не получаю полную информацию, потому что у меня нет правильной аутентификации ?? Мой результат такой же, как «просмотреть исходный код» в Chrome, когда мне нужно то, что показывает «проверяющий элемент» в Chrome. Мой тест - cimber.dk после ввода информации о рейсе и поиска.
Я пишу на python и пробовал библиотеку urllib2. Потом я услышал, что Selenium хорош для этого, поэтому я тоже попробовал. Тем не менее, это также дает мне тот же ограниченный источник страницы.
Это то, что я пробовал с urllib2 после использования Firebug, чтобы увидеть параметры. (Я удалил все свои куки после открытия 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()