python - 如何使用Python中的socks模块下载网页?

标签 python sockets proxy socks

http://socksipy.sourceforge.net/

>>> import socks
>>> s = socks.socksocket()
>>> s.setproxy(socks.PROXY_TYPE_SOCKS5,"socks.example.com")
>>> s.connect(("www.example.com",80))
>>> 

连接到代理后,如何下载网页?

注意:我不想使用“setdefaultproxy”。我已经有此方法的工作代码。

    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy_ip, proxy_port)
    socket.socket = socks.socksocket
    socket.setdefaulttimeout(3)
    my_ip = urllib2.urlopen('http://whatthehellismyip.com/?ipraw').read()

我想使用“connect”方法。

最佳答案

我在这里猜测了一点,因为我没有使用过 soksipy 模块,但是......

您可能需要先发送 header

s.send('GET / HTTP 1.1 / Host: localhost'); 

或者类似的......“”甚至可能有效。

然后从套接字读取缓冲区,如下所示:

resp = s.recv(4096);

while (len(resp) > 0):
    print(resp);
    resp = s.recv(4096);

关于python - 如何使用Python中的socks模块下载网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330105/

相关文章:

sockets - 通过TClientSocket从网站加载图像

java - 尝试使用以 XML 和 HTTP 编码的请求和响应检索数据时,从哪里开始是协议(protocol)

c++ - 发送到失败的 C++//POSIX.4

ios - CocoaPods 设置太慢,如何在终端中设置代理

c# - SSH.Net隧道

C 客户端-代理-服务器文件传输仅发送文件的一部分

c# - 通过 ZeroMQ 套接字发送 Pillow/numpy 图像

c# - 如何在 C# 中使用 Linq 将函数应用于列表中的每个元素,就像 python 中的方法 reduce() 一样?

python - 如果两点之间的距离低于某个阈值,则从列表中删除点

python - 剥离数据框单元格然后创建列