HTTP-баннер с Python

1

Я заинтересован в создании HTTP Banner Grabber, но когда я подключаюсь к серверу на порту 80, и я что-то посылаю (например, "HEAD/HTTP/1.1" ), recv ничего не возвращает мне, как когда я это делаю в let say netcat..

Как я могу это сделать?

Спасибо!

Теги:
netcat

2 ответа

2
Лучший ответ

Попробуйте использовать urllib2 module.

>>> data = urllib2.urlopen('http://www.example.com').read()
>>> print data
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
  <META http-equiv="Content-Type" content="text/html; charset=utf-8">
  <TITLE>Example Web Page</TITLE>
</HEAD> 
<body>  
<p>You have reached this web page by typing &quot;example.com&quot;,
&quot;example.net&quot;,
  or &quot;example.org&quot; into your web browser.</p>
<p>These domain names are reserved for use in documentation and are not available 
  for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC 
  2606</a>, Section 3.</p>
</BODY>
</HTML>

>>>

Попросив примеры, вы можете пропустить более тонкие точки. Чтобы увидеть заголовок content-type:

>>> stream = urllib2.urlopen('http://www.example.com')
>>> stream.headers['content-type']
'text/html; charset=UTF-8'
>>> data = stream.read()
>>> print data[:100]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
  <META http-equiv=
>>>
  • 0
    Как я буду искать в ответе? Если я хочу, чтобы мой сценарий мог идентифицировать, скажем, тип контента, и распечатать это ??
  • 0
    Смотрите пример типа контента (дополнение). На самом деле, вы должны посмотреть на BeautifulSoup - stackoverflow.com/questions/tagged/beautifulsoup
2

Вы отправляете "\ r\n\r\n", чтобы указать конец запроса? Если вы этого не сделаете, сервер все еще ждет остальную часть запроса.

  • 0
    Я попробую это очень быстро. Минуточку.
  • 0
    Спасибо, это сработало!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню