Python-几行代码获取百度首页源代码
Python-几行代码获取百度首页源代码
-socket的一点简单应用
import socket # 创建socket socketClient = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接服务器 socketClient.connect(("www.baidu.com",80)) # 发送请求 socketClient.send(b"GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n") # 创建一个列表用来储存接收到的数据 listData = [] # 接收数据 while True: # 接收到的数据是二进制形式 content = socketClient.recv(1024) if len(content) == 0: break # 读完停止 listData.append(content) # 将数据转换成字符串 strData = b"".join(listData).decode("utf-8") print(strData)
这样我们就可以在终端得到百度首页里面的代码的所有的内容了
跑出来的代码差不多就是下面的样子
上面一部分是让浏览器识别的 , 下面才是百度首页的实质内容 .
这样做完之后跑出来的东西只会在我们的终端显示如果我们想要生成一个.html的文件怎么怎么做呢 , 其实稍稍修改几行代码就可以实现了代码修改如下:
import socket # 创建socket socketClient = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接服务器 socketClient.connect(("www.baidu.com",80)) # 发送请求 socketClient.send(b"GET / HTTP/1.1\r\nHost:www.baidu.com\r\n\r\n") # 创建一个列表用来储存接收到的数据 # listData = [] # 将数据写到文件中去 wf = open("baidu.html",mode="wb") # 接收数据 while True: # 接收到的数据是二进制形式 content = socketClient.recv(1024) if len(content) == 0: break # 读完停止 # listData.append(content) # 写入baidu.html文件 wf.write(content) wf.flush()
然后等待一下就会生成一个baidu.html的文件 .
是不是很简单?!
人生苦短 , 我用python !