利用python3模拟访问网站
- 2020 年 1 月 13 日
- 筆記
功能: 利用python代码来获取我们访问网页后网页返回给我们的信息,将返回的内容写入到文件中.我们这里就拿百度图库来做个例子 需求: 使用socket模块
代码如下:
import socket def main(): # 创建套接字 tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接baidu tcp_socket.connect(("image.baidu.com",80)) # 模拟请求行 request_line ="GET / HTTP/1.1rn" request_headers = "Host: image.baidu.comrn" request_headers += "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36rnrn" # 模拟请求头 request = request_line + request_headers # 将模拟请求发送给baidu tcp_socket.send(request.encode()) # 接收baidu的响应 data = tcp_socket.recv(10240) # 切片取出baidu响应的内容,如果不切片内容中将包含响应报文 data = data.decode()[data.decode().find("rnrn")+4:] # 打开文件 new = open("newfile.html","w") # 将切片后的字符串写入 new.write(data) # 关闭文件 new.close() if __name__ == "__main__": main()