利用python3模拟访问网站

发布时间:2019-08-16 10:57:13编辑:auto阅读(1599)

    功能:
    利用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.1\r\n"
    
        request_headers = "Host: image.baidu.com\r\n"
    
        request_headers += "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36\r\n\r\n"
        # 模拟请求头
        request = request_line + request_headers
        # 将模拟请求发送给baidu
        tcp_socket.send(request.encode())
        # 接收baidu的响应 
        data = tcp_socket.recv(10240)
        # 切片取出baidu响应的内容,如果不切片内容中将包含响应报文
        data = data.decode()[data.decode().find("\r\n\r\n")+4:]
    
        # 打开文件
        new = open("newfile.html","w")
        # 将切片后的字符串写入
        new.write(data)
        # 关闭文件
        new.close()
    
    
    
    
    if __name__ == "__main__":
        main()

关键字