2017-02-25 3 views
0

Parsen diesen Link Gefolgt mit urllib2 anzumelden: Login to website using urllib2 - Python 2.7BeautifulSoup Probleme mit HTML mit POST form action

Was ich versuche, eine virtuelle Karte von Lagerräumen ist zu erstellen zu tun, dies zu tun, muss ich log in den Management-Server, der web-basiert ist. Daher die BS4-Verwendung und Urlib.

Die meisten der Anfrage funktioniert gut, außer es gibt einen deutlichen Unterschied zwischen dem HTML beim Laden der Seite durch manuelle Anmeldung (über die Website) vs bei der Verwendung von urllib.

hier ist ein Ausschnitt aus, wie es aussieht, wenn ich die urllib Art und Weise der Protokollierung im Einsatz:

<div id="gridContainer" class='grid_12'></div> 

<form action="/Inventory/UnpendStorageSpaces" method="post"><input name="__RequestVerificationToken" type="hidden" value=">>>>>>BLOCKED VALUE>>>>=" /><input id="deviceKey" name="deviceKey" type="hidden" value="" /><input id="facilityItemKey" name="facilityItemKey" type="hidden" value="" /> 

hier ist ein Ausschnitt aus, wie es aussieht, wenn ich (via Website) manuell melden:

<div id="gridContainer" class="grid_12 gridContainer"> 
<div class="ui-jqgrid ui-widget ui-widget-content ui-corner-all" id="gbox_gridContainer_grid" dir="ltr" style="width: 940px;"> 
<div class="ui-widget-overlay jqgrid-overlay" id="lui_gridContainer_grid"></div><div class="loading ui-state-default ui-state-active" id="load_gridContainer_grid" style="display: none;">Loading ...</div> 
<div class="ui-jqgrid-view" id="gview_gridContainer_grid" style="width: 940px;"><div class="ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix" style="display: none;"><a role="link" href="javascript:void(0)" class="ui-jqgrid-titlebar-close HeaderButton" style="right: 0px;"><span class="ui-icon ui-icon-circle-triangle-n"></span></a><span class="ui-jqgrid-title"> 

Wie Sie sehen können, gibt es einen deutlichen Unterschied zwischen den beiden, wollte nur sehen, was der beste Weg, um dies zu tun wäre?

Antwort

1

Sie erhalten ein anderes Ergebnis, da die Website Javascript und JQuery zum Rendern der Seite verwendet, was beim Abrufen der Seite über urllib nicht passieren wird.

Schauen Sie sich the first answer zu "Web-Scraping JavaScript-Seite mit Python" für eine In-Python-Lösung. Andere Optionen beinhalten Selenium oder Phantomjs, aber hoffentlich musst du nicht.

+0

Entschuldigung hatte einen dummen Moment da haha, herausgefunden, wie man dynamische Inhalte scrape ... im Grunde müssen Sie einen kopflosen Webkit-Browser verwenden. – user3866172

Verwandte Themen