Найти - Пользователи
Полная версия: urllib
Начало » Python для новичков » urllib
1 2
chegivara
Всем привет.
Написал такой скрипт:

#!/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/ , но мне почему то возвращается страница не с коротким урлом, а главная страница сайта.
Не пойму что делаю не так?
igor.kaist
хм… ну посмотри для начала, куда сабмитится форма отправки. Она сабмитится на на 4ur.us a на 4ur.us/create.php
chegivara
igor.kaist
хм… ну посмотри для начала, куда сабмитится форма отправки. Она сабмитится на на 4ur.us a на 4ur.us/create.php
Да, она сабмитится 4ur.us/create.php но ведь urllib имитирует работу браузера и для меня этот переход должен быть прозрачным? т е я ответ я должен получить 4ur.us/create.php.
Но почему то этого не происходит.
igor.kaist
urllib к сожалению не обладает экстрасенсорными способностями, и не знает, что сабмитить нужно по адресу /create.php, а не еще куда нибудь.
Он не имитирует браузер, он делает get/post запрос!
chegivara
Подскажите плиз, как надо сделать?
igor.kaist
Я же написал уже… Делай post запрос на 4ur.us/create.php
chegivara
Делал, тоже самое:

#!/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
igor.kaist
Ну ты посмотри внимательней что тебе приходит. Ты надеешься получить просто ссылку?!
А теперь посмотри через браузер, что приходит в ответ. Там опять же главная страница, на которой содержится твой заветный url.
chegivara
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>
А у вас страница с ссылкой приходит?
pasaranax
Возможно ты не все параметры отсылаешь. Посмотри заголовки отправляемые при сабмите, например плагином к лису LiveHTTPHeaders и отсылай то же самое.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB