Я не могу получить весь исходный код HTML-страницы

Используя Python, я хочу обходить данные на веб-странице, источник которой достаточно большой (это страница Facebook для некоторых пользователей).

Скажем, URL-адрес является URL-адресом, который я пытаюсь выполнить. Я запускаю следующий код:

import urllib2 usock = urllib2.urlopen(url) data = usock.read() usock.close() 

Предполагается, что данные содержат источник страницы, которую я просматриваю, но по какой-то причине она не содержит всех символов, которые доступны, когда я сравниваю непосредственно с исходным текстом страницы. Я не знаю, что я делаю неправильно. Я знаю, что страница, которую я пытаюсь выполнить, недавно не обновлялась, так что это связано не с тем, что мне не хватает некоторых очень свежих данных.

У кого-то есть ключ?

EDIT: вид информации, которую я пропускаю, похож:

 <code class="hidden_elem" id="up82eq_33"><!-- <div class="mbs profileInfoSection"><div class="uiHeader uiHeaderTopAndBottomBorder uiHeaderSection infoSectionHeader"><div class="clearfix uiHeaderTop"><div><h4 tabindex="0" class="uiHeaderTitle">Basic Information</h4></div></div></div><div class="phs"><table class="uiInfoTable mtm profileInfoTable uiInfoTableFixed"><tbody><tr><th class="label">Networks</th><td class="data"><div class="uiCollapsedList uiCollapsedListHidden" id="up82eq_32"><span class="visible">XXXX</span></div></td></tr></tbody></table></div></div> --></code> 

В основном это поле, которое меня интересует. Меня удивляет то, что я могу получить некоторые поля, но не все.

2 Solutions collect form web for “Я не могу получить весь исходный код HTML-страницы”

Facebook сильно ориентирован на Javascript. Источником страницы, который вы видите в браузере, является DOM после того, как был запущен какой-либо JS-код (и источник страницы часто меняется в любом случае). Возможно, вам придется автоматизировать браузер (используя Selenium) или попробовать другие инструменты, такие как механизация … Или заглянуть в подходящее приложение FB и использовать FB API.

Эта страница может выполнять некоторые javascript, а javascript генерирует некоторый контент.
Попробуйте Twill .
Он основан на Mechanize , но выполняет javascript.
Образец в Python:

 from twill.commands import * go("http://google.com/") fv("f", "q", "test") submit("btnG") info() #shows page info show() #shows html 

Другой вариант – использовать Zombie.js на Node.js.
Эта библиотека работает еще лучше, чем Twill, и это решение без браузера.
Образец в Coffeescript:

 zombie = require "zombie" browser = new zombie() browser.visit "https://www.google.ru/", => browser.fill "q", "node.js" browser.pressButton "Поиск в Google", -> for item in browser.queryAll "h3.ra" console.log item.innerHTML 
  • Как читать файлы .ARC от искателя Heritrix с помощью Python?
  • Scrapy - Сканирование и очистка веб-сайта
  • Как остановить всех пауков и двигатель сразу после выполнения условия в конвейере?
  • Извлеките ссылки для определенного раздела только из blogspot с помощью BeautifulSoup
  • Требуется помощь в отладке веб-искателя Python
  • Избегайте неправильных запросов из-за относительных URL-адресов
  • Почему Scrapy возвращает iframe?
  • Кто-нибудь знает хороший веб-искатель на основе Python, который я мог бы использовать?
  • Python - лучший язык программирования в мире.