利用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()