Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2009 15:12:58

chegivara
От:
Зарегистрирован: 2009-09-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib

Всем привет.
Написал такой скрипт:

#!/usr/bin/python
import urllib

url = "http://test.ru"
params = urllib.urlencode({'url': url })
link = urllib.urlopen("http://4ur.us/", params)
result = link.read()
print result
Скрипт должен генерить короткий урл на сайте http://4ur.us/ , но мне почему то возвращается страница не с коротким урлом, а главная страница сайта.
Не пойму что делаю не так?



Отредактировано (Ноя. 12, 2009 15:13:19)

Офлайн

#2 Ноя. 12, 2009 15:15:30

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

urllib

хм… ну посмотри для начала, куда сабмитится форма отправки. Она сабмитится на на 4ur.us a на 4ur.us/create.php



Офлайн

#3 Ноя. 12, 2009 15:18:06

chegivara
От:
Зарегистрирован: 2009-09-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib

igor.kaist
хм… ну посмотри для начала, куда сабмитится форма отправки. Она сабмитится на на 4ur.us a на 4ur.us/create.php
Да, она сабмитится 4ur.us/create.php но ведь urllib имитирует работу браузера и для меня этот переход должен быть прозрачным? т е я ответ я должен получить 4ur.us/create.php.
Но почему то этого не происходит.



Офлайн

#4 Ноя. 12, 2009 15:30:07

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

urllib

urllib к сожалению не обладает экстрасенсорными способностями, и не знает, что сабмитить нужно по адресу /create.php, а не еще куда нибудь.
Он не имитирует браузер, он делает get/post запрос!



Отредактировано (Ноя. 12, 2009 15:30:59)

Офлайн

#5 Ноя. 12, 2009 15:37:58

chegivara
От:
Зарегистрирован: 2009-09-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib

Подскажите плиз, как надо сделать?



Офлайн

#6 Ноя. 12, 2009 16:02:44

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

urllib

Я же написал уже… Делай post запрос на 4ur.us/create.php



Офлайн

#7 Ноя. 12, 2009 16:04:55

chegivara
От:
Зарегистрирован: 2009-09-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib

Делал, тоже самое:

#!/usr/bin/python
import urllib

url = "http://test.ru"
params = urllib.urlencode({'url': url })
link = urllib.urlopen("http://4ur.us/create.php", params)
result = link.read()
print result



Офлайн

#8 Ноя. 12, 2009 16:18:56

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

urllib

Ну ты посмотри внимательней что тебе приходит. Ты надеешься получить просто ссылку?!
А теперь посмотри через браузер, что приходит в ответ. Там опять же главная страница, на которой содержится твой заветный url.



Офлайн

#9 Ноя. 12, 2009 16:26:47

chegivara
От:
Зарегистрирован: 2009-09-27
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib

igor.kaist
Ну ты посмотри внимательней что тебе приходит. Ты надеешься получить просто ссылку?!
А теперь посмотри через браузер, что приходит в ответ. Там опять же главная страница, на которой содержится твой заветный url.
Может я там уже заблочен как то, но мне приходит главная страница без заветной ссылки.
Там должна быть строка: Your new short redirection link is:

# cat getlinks2.py 
#!/usr/bin/python
import urllib

url = "http://test.ru"
params = urllib.urlencode({'url': url })
link = urllib.urlopen("http://4ur.us/create.php", params)
result = link.read()
print result
# ./getlinks2.py |grep "Your new"
#
#
#
# ./getlinks2.py
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>4ur.us - Make A Long URL Very Short</title>
<meta name="keywords" content="url, subdomain, free, short, long, goshrink, go shrink, statistics, hit, shrink, redirection, forwarding, webmaster, tools, tinyurl, link, domain, ">
<meta name="description" content="4ur.us is webmaster resouce mainly for url redirection. We also offer other wermastering tools for you.">
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="content">
<h1>&nbsp;</h1>
<h1>&nbsp;</h1>
<h1>&nbsp;</h1>
<h1><a href="http://4ur.us">
<img src="img/logo.gif" alt="Help Im Stuck In This Image!" border="0" /></a></h1>
<h1>Short Url Redirection | Make A Long Url Short.</h1>
<div class="spacer"><span></span></div>
<form method="post" action="create.php">
<p>
<label title="Enter Long Url Here | http:// To Make It Work">
<input type="text" name="url" size="65" value="http://" /></label><br />
<label title="Submit URL to make it very short">
<input type="submit" name="send" value="Short It!" class="submit" /></label></p>
<div class="spacer"><span></span></div>
</form>
</div>
<div class="centered"><table>
<tr>
<td class="width" colspan="2"><blink><span><font color="#FF0000"><b>If you
encounter problem with this service. Please use another one:</b></font>
<a target="_blank" href="http://linkpeak.com">http://linkpeak.com</a></span></blink></td>
</tr>
<tr>
<td class="width"><div class="subcontent">
<ul>
<li><h2><strong>Redirection to any page.</strong></h2></li>
<li><h2><strong>Its easy to remember.</strong></h2></li>
</ul></div>
</td>
<td class="width"><div class="storycontent">
<ul>
<li><h2><strong>Friendly Link for SMS.</strong></h2></li>
<li><h2><strong>Just make it short.</strong></h2></li>
</ul></div>
</td>
</tr>
</table>
</div>
<!-- Read license.txt if you wish to remove the link -->
<div id="copy">Copyright &copy; 2007 4ur.us</div>
</body>
</html>
А у вас страница с ссылкой приходит?



Отредактировано (Ноя. 12, 2009 16:27:43)

Офлайн

#10 Ноя. 12, 2009 18:25:10

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib

Возможно ты не все параметры отсылаешь. Посмотри заголовки отправляемые при сабмите, например плагином к лису LiveHTTPHeaders и отсылай то же самое.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version