10

i know use urllib2 to fetch webpage is easy, but i want to know is there an sample for use socket implement fetch webpage function, i google a lot,i didn't found any example in this,could any one help?

maolingzhi
  • 681
  • 3
  • 8
  • 16
  • Why do you want to do this? – JeffS Jan 03 '13 at 14:34
  • http://blog.tonycode.com/tech-stuff/http-notes/making-http-requests-via-telnet Is a decent example of how to perform the raw requests via telnet which can be directly translated to `python` socket sends. – sean Jan 03 '13 at 14:35
  • http is based on socket stream protocal,so if i could know how to implement it under urllib2,than i can know more knowledge & backgroud on http – maolingzhi Jan 03 '13 at 15:32

1 Answers1

18

Here's something I whipped up. It doesn't catch exceptions to handle errors. YMMV

import socket
request = b"GET / HTTP/1.1\nHost: stackoverflow.com\n\n"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("stackoverflow.com", 80))
s.send(request)
result = s.recv(10000)
while (len(result) > 0):
    print(result)
    result = s.recv(10000)   
selbie
  • 100,020
  • 15
  • 103
  • 173
  • I always wondered what socket examples looked like. Thankfully I use requests or urllib. Might look into learning socket so I can appreciate it more than I do now. – Danijel-James W Feb 22 '18 at 03:53
  • it doesn't catch exception doesn't mean it won't, You should put your connection code under try catch block to avoid it. – Fay007 Nov 18 '18 at 20:56
  • I have a service with the path "http://example.com/sensors/premises" how can I apply this code to make a GET request? i tried to put my domain name into Host definition and put it also into connect function, but always get a Forbedden response from the service, even though from the browser the same URL is available. – Liudmila Dobriakova Jun 28 '22 at 09:43