模拟浏览器请求Python结合html基本格式

用Python模拟一个客户端,结合打开一个HTML页面

创建客户端

  1. #!/usr/bin/env python
  2. # -*- coding:utf8 -*-
  3. import socket #导入单线程通讯模块
  4. def handle_request(client):
  5. buf = client.recv(1024)
  6. client.sendall(bytes("HTTP/1.1 201 OK\r\n\r\n","utf8")) #向客户端发送内容,以字节形式发送
  7. f = open("1.html", "r", encoding="utf-8") #打开HTML文件
  8. f2 = f.read() #读出HTML文件内容
  9. f.close() #关闭打开的文件
  10.  
  11. client.sendall(bytes(f2,"utf8")) #将读出HTML文件内容向客户端发送内容,以字节形式发送
  12.  
  13. def main():
  14. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #创建服务端通讯对象
  15. sock.bind(('localhost',8082)) #在服务端设置服务端ip和端口8
  16. sock.listen(5) #监听IP和端口,设置一个参数,表示最多连接排队数量
  17.  
  18. while True:
  19. connection, address = sock.accept() #等待接收客户端的请求,一旦有客户端请求连接,就会返回两个值,一个是连接对象,一个是客户端的地址信息,所以需要两个变量来接收
  20. handle_request(connection) #执行handle_request函数,将客户端请求连接传入handle_request函数
  21. connection.close() #关闭连接
  22.  
  23. if __name__ == '__main__': #wds系统下if __name__ == "__main__"才能创建进程,我们调试没关系,以后在Linux系统没这个问题
  24.  
  25. main() #执行main函数

HTML页面

将HTML页面放入客服端相同的目录里

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>你好</h1>
  9. </body>
  10. </html>

启动客户端后在浏览器输入http://127.0.0.1:8082/  可以看到以下结果

你好

下面我们开始讲HTML知识

HTML基本格式

  1. <!DOCTYPE html> //文档类型声明
  2. <html lang="zh-cn"> //表示HTML文档开始,属性lang,属性值=zh-cn(声明中文网页的意思)
  3. <head> //包含文档元素开始
  4. <meta charset="UTF-8"> //声明字符编码
  5. <title>标题</title> //设置文档标题
  6. </head> //包含文档元素结束
  7. <body> //表示HTML内容开始
  8.  
  9. </body> //表示HTML内容结束
  10. </html> //表示HTML文档结束

<!DOCTYPE html>
它主要告诉浏览器所查看的文件类型,表示为HTML文档类型

<html lang="zh-cn"></html>
HTML元素是文档开始和结尾的元素,它是一个双标签,包含内容,这个元素有一个属性和属性值,lang="zh-cn",表示文档语言为:简体中文,如果是英文网页为lang="en"

<head> </head>
用来包含元数据内容,元数据内容包括:<link>、<meta>、<noscript>、<scripy>、<style>、<title>,这些内容用来向浏览器提供信息,比如link提供css信息,这些类型都是页面不可见的

<meta>
这个元素可以用来设置字符编码,告诉浏览器页面采用什么编码,除了设置编码还有别的

<title></title>
这个元素是设置页面的标题的,标题会显示到浏览器上部,也会被搜索引擎识别

<body> </body>
用来包含文档内容的元素,也就是浏览器可见部分,所有的可见部分都应该写在这里

第五十九节,模拟浏览器请求Python结合html基本格式的更多相关文章

  1. 第三百五十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)介绍以及安装

    第三百五十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)介绍以及安装 elasticsearch(搜索引擎)介绍 ElasticSearch是一个基于 ...

  2. 第一百五十九节,封装库--JavaScript,表单序列化结合ajax提交数据

    封装库--JavaScript,表单序列化结合ajax提交数据 封装库,表单序列化方法 /** xu_lie_biao_dan()方法,表单序列化方法,将自动获取指定表单里面的各项字段name值和va ...

  3. 第四十节,requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/latest/use ...

  4. 第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页

    第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页 根据用户的筛选条件来结合分页 实现原理就是,当用户点击一个筛选条件时,通过get请求方式传参将筛选的id或者值, ...

  5. 第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能

    第三百六十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能 Django实现搜索功能 1.在Django配置搜索结果页的路由映 ...

  6. 第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用

    第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener ...

  7. requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  一.下载 requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/lates ...

  8. 第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制

    第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用.自动限速.自定义spider的settings,对抗反爬机制 cookie禁用 就是在Scrapy的配置文件set ...

  9. 第三百一十九节,Django框架,文件上传

    第三百一十九节,Django框架,文件上传 1.自定义上传[推荐] 请求对象.FILES.get()获取上传文件的对象上传对象.name获取上传文件名称上传对象.chunks()获取上传数据包,字节码 ...

随机推荐

  1. 办理多伦多大学(本科)学历认证『微信171922772』Toronto学位证成绩单使馆认证University of Toronto

    办理多伦多大学(本科)学历认证『微信171922772』Toronto学位证成绩单使馆认证University of Toronto Q.微信:171922772办理教育部国外学历学位认证海外大学毕业 ...

  2. Docker集群实验环境布署--swarm【5 容器启动组件--node】

    10.40.100.143 docker-node0.venic.com 10.40.100.144 docker-node1.venic.com     原用swarm镜像   直接启动     1 ...

  3. javascript:;”是什么意思

    就是 执行一段 空白JAVASCRIPT语句 并且返回的也是空或者false值..把 javascript:; 加在超级链接上 就可以防止 链接跳转..从而 可以给 链接的 onclick 方法上 写 ...

  4. List转换为DataTable

    public static DataTable ListToDataTable(IList list) { DataTable result = new DataTable(); if (list.C ...

  5. 弹框ESC键退出

    $(document).keyup(function(event){ switch(event.keyCode) { case 27: alert("ESC"); case 96: ...

  6. hadoop(一)

    1 环境熟悉安装jdk.hadoop配置xml文件,启动伪分布式运行example-jar,测试mapreduce程序2 mapreduce编程使用eclipse开发mapreduce程序,导出jar ...

  7. Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍

    学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊.呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的. 什么是Linux? 也许很多人 ...

  8. openstack私有云布署实践【10.1 计算nova - kxcontroller节点配置(科兴环境)】

    一.首先登录kxcontroller1创建kx_nova数据库,并赋于远程和本地访问的权限.     mysql -u root -p   CREATE DATABASE kx_nova; GRANT ...

  9. GrowingIO 2016 数据驱动增长大会—— 一起做增长英雄

    GrowingIO 2016 数据驱动增长大会,首次聚齐了增长黑客之父 Sean Ellis .世界前十位前沿数据科学家张溪梦等数十位中美顶尖增长实践者: 链家.点融网.Camera360.量化派.北 ...

  10. F9 开发之左树右表中的左树

    1 首先在前端应用树树控件 <div class="fui-left"> <div role="head" title="地区选择& ...