日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

零基础学Python-爬虫-1、网络请求Requests【网络操作理论基础与实践·请认真看看理论,理论基础决定后期高度】

發布時間:2024/8/26 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 零基础学Python-爬虫-1、网络请求Requests【网络操作理论基础与实践·请认真看看理论,理论基础决定后期高度】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本套課程正式進入Python爬蟲階段,具體章節根據實際發布決定,可點擊【python爬蟲】分類專欄進行倒序觀看:

【重點提示:請勿爬取有害他人或國家利益的內容,此課程雖可爬取互聯網任意內容,但無任何收益,只為大家學習分享?!?/span>

開發環境:【Win10】

開發工具:【Visual Studio 2019】

Python版本:【3.7】

1、Python爬蟲的介紹

網絡爬蟲(又被稱為網頁蜘蛛(Web Spider),網絡機器人,好聽點的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網(www)信息的程序或者腳本。

在瀏覽器中輸入地址(網站地址URL:百度一下,你就知道)后,向服務器發送一個請求,服務器經過解析后發送給用戶瀏覽器結果。

爬蟲就是通過分析和過濾html代碼,從中獲取我們想要的資源(文本、圖片、音頻、視頻等)。

2、請求【request】與響應【response】

2.1、服務器處理請求的流程:

? (1)服務器每次收到請求時,都會為這個請求開辟一個新的線程。
? (2)服務器會把客戶端的請求數據封裝到request對象中,request就是請求數據的載體!
? (3)服務器還會創建response對象,這個對象與客戶端連接在一起,它可以用來向客戶端發送響應。

2.2、request—封裝了客戶端所有的請求數據

request的功能可以分為以下幾種:

(1)封裝了請求頭數據;

(2)封裝了請求正文數據,如果是GET請求,那么就沒有正文;

(3)request是一個域對象,可以把它當成Map來添加獲取數據;

(4)request提供了請求轉發和請求包含功能。

2.2.1、GET請求和POST請求的區別:

GET請求:

請求參數會在瀏覽器的地址欄中顯示,所以不安全;

請求參數長度限制長度在1K之內;#面試考點,我經常問面試者這個問題

GET請求沒有請求體,無法通過request.setCharacterEncoding()來設置參數的編碼;

POST請求:

請求參數不會顯示瀏覽器的地址欄,相對安全;#大廠一般請求都會是Post,包括很多read操作。

請求參數長度沒有限制;

2.3、response在python中的理解

Python django中我們經常用的response有django中的 JsonResponse, HttpResponse,還有DRF中的Response

在使用的時候,經常會不知道如何什么時候選擇用哪個response

下面簡單記錄下這三個response的區別

2.3.1、HttpResponse

它的返回格式為:HttpResponse(content=響應體, content_type=響應體數據類型, status=狀態碼)

1)它可以返回普通文本信息

HttpResponse("哈哈哈哈")

2)它可以像文本一樣追加內容:

res = HttpResponse("哈哈哈哈")

res.write("恩,我們是一個測試段落")

3)它還可以返回圖片,音頻,視頻等二進制文件信息

img = open(filepath,"rb")

data = img.read()

return HttpResponse(data, content_type="image/png")

2.3.2、JsonResponse

它繼承自HttpResponse,它主要用于返回json格式的數據

JsonResponse(jsonData,content_type="application/json")

2.3.3、RestFramework框架封裝的Response

它的返回格式為:

Response(data, status=None,template_name=None, header=None, content_type=None)

data:為python內建數據類型,DRF會使用render渲染器處理data

3、修改pip鏡像地址為國內地址(請保存此模塊)

國內鏡像地址

http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 華中理工大學
http://pypi.sdutlinux.org/simple/ 山東理工大學
http://pypi.mirrors.ustc.edu.cn/simple/ 中國科學技術大學
https://pypi.tuna.tsinghua.edu.cn/simple 清華

安裝命令:【賦復制粘貼即可】

pip install --index http://mirrors.aliyun.com/pypi/simple/ pandas

4、安裝pip的requests包(注:如果pip不是最新的請直接所有pip安裝最新版本即可)

安裝完成后:

5、測試【requests】訪問網址:(前提是安裝了requests模塊才能使用import引入)

import requests #獲取請求的響應結果【response】 response=requests.get("http://www.baidu.com") #類型 print(type(response)) #響應狀態【200為成功】 print(response.status_code) #響應文本類型-一般都是str字符串 print(type(response.text)) #響應文本內容 print(response.text) #<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]> print(response.cookies) #響應內容 print(response.content) #修改響應的編碼格式 print(response.content.decode("utf-8"))

5.1、重點理解

response.text返回的類型是str

response.content返回的類型是bytes,可以通過decode()方法將bytes類型轉為str類型

推薦使用:response.content.decode()的方式獲取相應的html頁面

5.2、擴展理解

  • response.text?
    解碼類型:根據HTTP頭部對響應的編碼做出有根據的推測,推測的文本編碼?
    如何修改編碼方式:response.encoding = 'gbk'

  • response.content?
    解碼類型:沒有指定?
    如何修改編碼方式:response.content.decode('utf8')

6、【requests】請求方式:(測試的是阿里的手機地址查詢(免費的get接口),只返回gbk編碼的數據)

import requests #獲取請求的響應結果【response】 tel=int(input("請輸入手機號碼:\n")) url="https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel={0}".format(tel) print(url) response=requests.get(url) print(response.text) print(response.content.decode("gbk"))

個人推薦使用【聚合數據】做自己的測試用接口,免費的每天能用100次左右,夠你做測試了。有條件的可以使用自己的接口測試,我在【ASP.NET Core中詳細的介紹的創建使用上線步驟】

由于未找到post請求的免費api故而寫個例子做展示啊:

import requests data = {"name":"小龍女","age":16 } response = requests.post("http://httpbin.org/post",data=data) print(response.text)

?

7、urllib.request與requests區別

通常而言,在我們使用python爬蟲時,更建議用requests庫,因為requests比urllib更為便捷,requests可以直接構造get,post請求并發起,而urllib.request只能先構造get,post請求,再發起。

8、總結:

a)、本章節主要為讓大家了解網絡請求的方式,這里主要是【get】與【post】請求,使用的是【requests】模塊。

b)、后續所有的訪問返回都會使用【requests】請大家好好練習一下這塊。

歡迎【點贊】、【評論】、【關注】、【收藏】、【打賞】,為推廣知識貢獻力量。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的零基础学Python-爬虫-1、网络请求Requests【网络操作理论基础与实践·请认真看看理论,理论基础决定后期高度】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人综合自拍 | 国产白丝精品91爽爽久久 | 人人爽人人草 | 免费日韩精品 | 小箩莉末发育娇小性色xxxx | 99热这里都是精品 | 三级精品在线 | 久久久老熟女一区二区三区91 | 欧美性生交xxxxx久久久缅北 | www.夜夜爱| 精品久久伊人 | 神马久久午夜 | 国产精品99久久久久久人 | 欧美性猛交xxxx乱大交3 | 天天射天天色天天干 | 国产精品第3页 | 欧美成人aaa片一区国产精品 | 久久久久久久久久综合 | 91一区二区三区 | 天堂网在线观看视频 | 日本少妇一区二区三区 | 国产熟妇搡bbbb搡bbbb | 国产福利视频网站 | 激情婷婷综合网 | 国产精品综合在线 | 夜夜狠狠擅视频 | 国产精品一区二区性色av | 国产性―交一乱―色―情人 | www在线观看免费视频 | 激情一区 | 黄色片视频免费观看 | 欧美乱妇狂野欧美在线视频 | 国产网站91 | 大肉大捧一进一出视频 | 五月天婷婷在线播放 | 色操插 | 欧美日韩成人网 | 日av中文字幕 | 日本午夜在线视频 | 久久极品视频 | 亚洲视频福利 | 国产精品一级二级 | 久久久久影视 | 国产精品天美传媒入口 | 韩国一级淫片免费看 | 久久久久久久国产视频 | 黄色免费网页 | 在线国产一区 | 国产亚州av | 成人做爰69片免费 | 国产又粗又猛又爽又黄的视频小说 | 亚洲少妇色 | 69人妻精品久久无人专区 | 亚洲精品国产精品乱码桃花 | av噜噜 | 天天碰天天操 | 国产精品jizz在线观看美国 | 亚洲大片免费看 | 国产免费激情 | 亚洲女同一区 | 欧美另类z0zx974| 中文字幕在线一区二区三区 | 一区二区三区啪啪啪 | 国产成人精品一区二区 | 亚洲精品天堂网 | 日本黄色小片 | 深夜av| 亚洲精品粉嫩小泬20p | 成人午夜淫片免费观看 | 国语播放老妇呻吟对白 | 第一次破处视频 | 欧美国产成人精品一区二区三区 | 免费网站在线观看视频 | 国产三区视频 | 超碰不卡 | 日韩黄色在线 | 亚洲社区一区二区 | 婷婷久久精品 | av手机版| 国产中文字幕久久 | 中国黄色片子 | 精品一二三| 日韩短视频 | 桃色视频网站 | 国产丝袜一区二区三区 | 大地资源二中文在线影视免费观看 | 亚洲视频中文字幕在线观看 | wwwa级片| 97国产精东麻豆人妻电影 | 无码精品国产一区二区三区免费 | 欧美性一级 | 欧美激情影音先锋 | 精品国产乱码久久久久久浪潮 | 精品少妇久久久久久888优播 | www.色婷婷.com | 精品一区二区久久久久久按摩 | 精品人伦一区二区三区 | 久久av红桃一区二区小说 | 天天干天天舔天天操 |