Web請(qǐng)求過程
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括開江網(wǎng)站建設(shè)、開江網(wǎng)站制作、開江網(wǎng)頁制作以及開江網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,開江網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到開江省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
1、服務(wù)器渲染:在服務(wù)器那邊直接把數(shù)據(jù)和html整合在一起,統(tǒng)一返回給瀏覽器
在頁面源代碼中能看到數(shù)據(jù)
2、客戶端渲染:第一次請(qǐng)求只有一個(gè)html骨架,第二次請(qǐng)求拿到數(shù)據(jù),進(jìn)行數(shù)據(jù)展示(一般為XHR)
在頁面源代碼中看不到數(shù)據(jù)
<可用檢查網(wǎng)頁或者F12來查看>
HTTP協(xié)議
Hyper Text Transfer Protocol:超文本傳輸協(xié)議,從萬維網(wǎng)(www:World Wide Web)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議
HTML(Hyper Text Makeup Language):超文本標(biāo)記語言
HTTP對(duì)于請(qǐng)求和相應(yīng)都把消息分為三個(gè)部分:( {}中表示在實(shí)際網(wǎng)頁中的形式)
請(qǐng)求:
1、請(qǐng)求行:請(qǐng)求方式(get/post)、請(qǐng)求url地址、協(xié)議
{Request URL(在?前的是URL,在?后的是參數(shù))、Request Method}
GET:一般用于查詢東西(顯式提交),請(qǐng)求方式一般是Query String Parameters(即在Request URL中?后的內(nèi)容)
POST:一般用于修改東西(隱式提交),請(qǐng)求方式一般是Form Data
2、請(qǐng)求頭:放一些服務(wù)器要求的附加信息(比如對(duì)數(shù)據(jù)的要求)
{Request Heads}(User-Agent(請(qǐng)求載體的身份標(biāo)識(shí))、Referer(防盜鏈)、Cookie(用戶的登錄狀態(tài)))
3、請(qǐng)求體:放一些請(qǐng)求參數(shù)(比如搜索的內(nèi)容)
相應(yīng):
1、狀態(tài)行:協(xié)議、狀態(tài)碼(告訴我請(qǐng)求是否成功,比如200、404、500、302)
{Status code}
2、響應(yīng)頭:放一些客戶端要求的附加信息(比如密鑰)
{Response Heads}(Cookie、各種莫名其妙的字符串(一般都是token字樣))
3、響應(yīng)體:服務(wù)器返回的真正的客戶端要用的內(nèi)容(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"} # 請(qǐng)求頭 response = requests.get(url, headers=headers) text= response.text obj= re.compile(r""".*?(?P """, re.S) result= obj.finditer(text) # 在text中查找obj(是一個(gè)Pattern對(duì)象),返回一個(gè)迭代器 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