Найти - Пользователи
Полная версия: Как правильно делать parse веб-страниц используя Socket
Начало » Python для новичков » Как правильно делать parse веб-страниц используя Socket
1
Unnamed001
Здравствуйте, занимаюсь самообразованием, подскажите пожалуйста.

Как я понял, через socket работает практически все (или даже все), мне нужно сделать parse веб-страницы используя socket (точнее просто получить всю страничку, чтобы дальше с ней работать), но при реализации столкнулся с трудностями:

import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("diz-cs.ru", 80))
s.send("GET / HTTP/1.0\r\n\r\n")
buf = s.recv(100000)
sys.stdout.write(buf)
s.close()

В итоге, сервер почему ничего не отдает, кроме заголовка с ответом:

HTTP/1.1 404 Not Found
 Server: uServ/3.2.2
Date: Tue, 14 Jul 2015 18:25:05 GMT
Content-Type: text/html; charset=UTF-8
Connection: close

Знаю, что для таких целей можно использовать urllib, httplib. Но подскажите, пожалуйста, как используя socket можно сделать?
Shaman
Чтить HTTP
s.send('GET / HTTP/1.0\r\nHost: diz-cs.ru\r\n\r\n')
Unnamed001
Shaman
Чтить HTML
Спасибо за подсказку, а как быть если при отправке запроса, получаем ответ “Please enable cookies” от сайта?
Shaman
Обрабатывать Set-Cookie и Cookie.
Unnamed001
Shaman
Обрабатывать Set-Cookie и Cookie.
Не затруднит, пожалуйста показать на примере?
Shaman
Так мы до интерпретации яваскриптов докатимся. Нет, Вам пока полезнее будет лично поразбираться.
Unnamed001
Shaman
Так мы до интерпретации яваскриптов докатимся. Нет, Вам пока полезнее будет лично поразбираться.

Так мне не нужно обрабатывать эти куки, а просто показать серверу, что я их принимаю, чтобы он отдал мне страничку.
Shaman
В бородатые годы, когда мне нужно было узнать как работать с каким-нибудь интерфейсом, а ни литературы, ни гуров с интернетами под рукой не было, приходилось дизассемблировать чужие екзешники. Вы так тоже сможете.
JOHN_16
Unnamed001
но вы же самообразованием занимаетесь - посмотрите на спецификацию HTML в частности на заголовки в GET запросе касательно того как показать серверу что вы принимаете куки. Ничего сложного. Просто немного погуглить и почитать.
Budulianin
Unnamed001
Не затруднит, пожалуйста показать на примере?

Очередная жертва формального образования. Выздоравливай, всё в твоих руках.
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