重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Web请求过程
创新互联服务项目包括开江网站建设、开江网站制作、开江网页制作以及开江网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,开江网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到开江省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
1、服务器渲染:在服务器那边直接把数据和html整合在一起,统一返回给浏览器
在页面源代码中能看到数据
2、客户端渲染:第一次请求只有一个html骨架,第二次请求拿到数据,进行数据展示(一般为XHR)
在页面源代码中看不到数据
<可用检查网页或者F12来查看>
HTTP协议
Hyper Text Transfer Protocol:超文本传输协议,从万维网(www:World Wide Web)服务器传输超文本到本地浏览器的传送协议
HTML(Hyper Text Makeup Language):超文本标记语言
HTTP对于请求和相应都把消息分为三个部分:( {}中表示在实际网页中的形式)
请求:
1、请求行:请求方式(get/post)、请求url地址、协议
{Request URL(在?前的是URL,在?后的是参数)、Request Method}
GET:一般用于查询东西(显式提交),请求方式一般是Query String Parameters(即在Request URL中?后的内容)
POST:一般用于修改东西(隐式提交),请求方式一般是Form Data
2、请求头:放一些服务器要求的附加信息(比如对数据的要求)
{Request Heads}(User-Agent(请求载体的身份标识)、Referer(防盗链)、Cookie(用户的登录状态))
3、请求体:放一些请求参数(比如搜索的内容)
相应:
1、状态行:协议、状态码(告诉我请求是否成功,比如200、404、500、302)
{Status code}
2、响应头:放一些客户端要求的附加信息(比如密钥)
{Response Heads}(Cookie、各种莫名其妙的字符串(一般都是token字样))
3、响应体:服务器返回的真正的客户端要用的内容(HTML、json)
一、re
import requests import re url= "https://movie.douban.com/top250" headers= { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"} # 请求头 response = requests.get(url, headers=headers) text= response.text obj= re.compile(r""".*?(?P """, re.S) result= obj.finditer(text) # 在text中查找obj(是一个Pattern对象),返回一个迭代器 for i in result: print(i.group("name")) # group()用于分组 print(i.group("director").strip()) # 去掉空格 print(i.group("lead")) print(i.group("time").strip()) print(i.group("country")) print(i.group("type")) print(i.group("score")) print(i.group("number")) print(i.group("quote")) response.close().*?) .*?(?P
.*?) (?P .*?)...
(?P