requests模塊

必知知識點html

-常見請求頭python

User-Agent 瀏覽器的身份標識字符串
Content-Type 請求體的MIME類型 (用於POST和PUT請求中)

-常見響應頭web

Status 通用網關接口的響應頭字段,用來講明當前HTTP鏈接的響應狀態。

-https協議的加密方式json

對稱祕鑰(容易被攔截)瀏覽器

非對稱祕鑰(模擬服務器響應)服務器

證書認證(第三方機構認證的,通訊雙方都承認)cookie

requests模塊:requests模塊是python中原生的基於網絡請求的模塊,其主要做用是用來模擬瀏覽器發起請求。功能強大,用法簡介,在爬蟲領域佔據很重要的地位。網絡

使用requests:post

自動處理url編碼編碼

自動處理post請求參數

簡化cookie和代理操做

使用流程:

   指定url

   基於requests模塊發起請求

   獲取響應對象中的數據值

   持久化存儲

實際案例:

# 需求,爬取搜狗指定詞條搜索後的頁面

import requests
url = "http://www.sogou.com/web"
wd = input('enter a word:')
param = {
    'query':wd
}
response = requests.get(url=url,params=param)

page_text = response.content
fileName = wd+'.html'
with open(fileName,'wb') as f:
    f.write(page_text)
    print('over')

# 豆瓣喜劇電影排行

import requests
url = 'https://movie.douban.com/j/chart/top_list'
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36"
}
parma = {
    "type": "24",
    "interval_id": "100:90",
    "action": "",
    "start": "1",
    "limit": "20",
}
response_obj = requests.get(url=url,headers=headers,params=parma).json()
print(response_obj)

# 爬取肯德基地址

import requests
import json
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36"
}
f = open('KFCaddr.json','w',encoding='utf-8')
for i in range(1,8):
    data = {
        "cname": "",
        "pid": "",
        "keyword": "北京",
        "pageIndex": str(i),
        "pageSize": "10",
    }
    obj_json = requests.post(url=url,headers=headers,data=data).json()['Table1']
    json.dump(obj_json,f,ensure_ascii=False)
f.close()
相關文章
相關標籤/搜索