Я пытаюсь автоматизировать извлечение некоторой информации с веб-сайта, который сначала требует, чтобы я вошел в систему. Я делал это в прошлом (несколько лет назад) с помощью wget, но этот метод больше не работает - и я не знаю почему.
Я делал это так:
MY_USERNAME=username # needs to be urlencoded, this can be done at http://lajm.eu/emil/dump/stringfunctions.php.
MY_PASSWORD=password # also has to be urlencoded
LOGIN_DATA="action=login&login_nick=$MY_USERNAME&login_pwd=$MY_PASSWORD"
wget --quiet --save-cookies cookiejar --keep-session-cookies --post-data $LOGIN_DATA --user-agent 'Firefox' -O um.htm http://ungdomar.se/index.php
Теперь, когда я пытаюсь запустить это, меня просто отправляют обратно на главную страницу (поэтому я не просто ввожу неправильный пароль. Если бы я сделал это, я бы получил другую разметку обратно).
Я также пытался сделать это в Python с использованием mechanize (это было бы предпочтительнее, чем wget), но я, похоже, получил тот же результат. Просто уму непостижимо, почему это не сработает. Это часть сайта, которая имеет дело с формой. Чтобы увидеть полную разметку, просто перейдите на ungdomar.se.
<div id="loginLoginbox" style="display:none;">
<form name="login" method="post" action="/">
<table width="250" cellspacing="0" cellpadding="0" border="0">
<tr>
<td colspan="2">
<span class="page_login_text">Användarnamn</span><br />
<input name="login_nick" type="text" style="width:250px;height:16px;line-height:10px;font-size:9px;" maxLength="30">
</td>
</tr>
<tr>
<td colspan="2">
<span class="page_login_text">Lösenord</span><br />
<input name="login_pwd" type="password" style="width:250px;height:16px;line-height:10px;font-size:9px;" maxLength="25"><br />
<img src="/gfx/1x1.gif" width="1" height="5" alt="" />
</td>
</tr>
<tr>
<td width="42%" valign="top">
<span style="vertical-align:super;" class="page_login_text">
<label for="login_auto">Kom ihåg mig</label>
</span>
<input name="login_auto" id="login_auto" type="checkbox" value="1" style="width:12px; height:12px;">
</td>
<td width="58%" align="right" valign="top">
<a class="page_login_text" href="/sendpwd.php">Glömt lösen?</a>
<button class="button_active" type="submit">Logga in</button>
</td>
</tr>
</table>
</form>
</div>
Если бы кто-то мог сказать мне, почему это не сработало, я был бы вечно благодарен.
РЕДАКТИРОВАТЬ: Я просто создал свою собственную маленькую веб-форму (структурированную точно так же, как на сайте), и она работала просто отлично. Что, черт возьми, они могут делать, чтобы я не мог войти с помощью wget или механизировать?