一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

python爬蟲(chóng)04 | 長(zhǎng)江后浪推前浪,Reuqests庫(kù)把urllib庫(kù)拍在沙灘上

 小帥b 2021-10-12

最近

有些朋友

看完小帥b的文章之后

把小帥b的表情包都偷了

還在我的微信

瘋狂發(fā)表情包嘚瑟

我就呵呵了

只能說(shuō)一句

盤他

還有一些朋友

看完文章不點(diǎn)好看

還來(lái)催更

小帥b也只能說(shuō)一句

繼續(xù)盤他

ok

接下來(lái)我們要來(lái)玩一個(gè)新的庫(kù)

這個(gè)庫(kù)的名稱叫做

Requests

這個(gè)庫(kù)比我們上次說(shuō)的 urllib 可是要牛逼一丟丟的

畢竟 Requests 是在 urllib 的基礎(chǔ)上搞出來(lái)的

通過(guò)它我們可以用更少的代碼

模擬瀏覽器操作

人生苦短

接下來(lái)就是

學(xué)習(xí) python 的正確姿勢(shì)

skr

對(duì)于不是 python 的內(nèi)置庫(kù)

我們需要安裝一下

直接使用 pip 安裝

pip install requests

安裝完后就可以使用了

接下來(lái)就來(lái)感受一下 requests 吧

導(dǎo)入 requests 模塊

import requests

一行代碼 Get 請(qǐng)求

r = requests.get('https://api.github.com/events')

一行代碼 Post 請(qǐng)求

r = requests.post('https:///post', data = {'key':'value'})

其它亂七八糟的 Http 請(qǐng)求

>>> r = requests.put('https:///put', data = {'key':'value'})

>>> r = requests.delete('https:///delete')

>>> r = requests.head('https:///get')

>>> r = requests.options('https:///get')

想要攜帶請(qǐng)求參數(shù)是吧?

>>> payload = {'key1': 'value1', 'key2': 'value2'}

>>> r = requests.get('https:///get', params=payload)

假裝自己是瀏覽器

>>> url = 'https://api.github.com/some/endpoint'

>>> headers = {'user-agent': 'my-app/0.0.1'}

>>> r = requests.get(url, headers=headers)

獲取服務(wù)器響應(yīng)文本內(nèi)容

>>> import requests

>>> r = requests.get('https://api.github.com/events')

>>> r.text

u'[{"repository":{"open_issues":0,"url":"https://github.com/...
>>> r.encoding

'utf-8'

獲取字節(jié)響應(yīng)內(nèi)容

>>> r.content

b'[{"repository":{"open_issues":0,"url":"https://github.com/...

獲取響應(yīng)碼

>>> r = requests.get('https:///get')

>>> r.status_code

200

獲取響應(yīng)頭

>>> r.headers

{    
   'content-encoding': 'gzip',
   
   'transfer-encoding': 'chunked',
 
   'connection': 'close',
   
   'server': 'nginx/1.0.4',
   
   'x-runtime': '148ms',
   
   'etag': '"e1ca502697e5c9317743dc078f67693f"',
 
   'content-type': 'application/json'
   
}

獲取 Json 響應(yīng)內(nèi)容

>>> import requests

>>> r = requests.get('https://api.github.com/events')

>>> r.json()

[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...

獲取 socket 流響應(yīng)內(nèi)容

>>> r = requests.get('https://api.github.com/events', stream=True)

>>> r.raw

<urllib3.response.HTTPResponse object at 0x101194810>

>>> r.raw.read(10)

'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'

Post請(qǐng)求

當(dāng)你想要一個(gè)鍵里面添加多個(gè)值的時(shí)候

>>> payload_tuples = [('key1', 'value1'), ('key1', 'value2')]

>>> r1 = requests.post('https:///post', data=payload_tuples)

>>> payload_dict = {'key1': ['value1', 'value2']}

>>> r2 = requests.post('https:///post', data=payload_dict)

>>> print(r1.text)

{  ...  "form": {    "key1": [      "value1",      "value2"    ]  },  ...}

>>> r1.text == r2.text

True

請(qǐng)求的時(shí)候用 json 作為參數(shù)

>>> url = 'https://api.github.com/some/endpoint'

>>> payload = {'some': 'data'}

>>> r = requests.post(url, json=payload)

想上傳文件?

>>> url = 'https:///post'

>>> files = {'file': open('report.xls', 'rb')}

>>> r = requests.post(url, files=files)

>>> r.text

{  ...  "files": {    "file": "<censored...binary...data>"  },  ...}

獲取 cookie 信息

>>> url = 'http:///some/cookie/setting/url'

>>> r = requests.get(url)

>>> r.cookies['example_cookie_name']

'example_cookie_value'

發(fā)送 cookie 信息

>>> url = 'https:///cookies'

>>> cookies = dict(cookies_are='working')

>>> r = requests.get(url, cookies=cookies)

>>> r.text

'{"cookies": {"cookies_are": "working"}}'

設(shè)置超時(shí)

>>> requests.get('https://github.com/', timeout=0.001)

Traceback (most recent call last): File "<stdin>", line 1, in <module>requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)

除了牛逼

還能說(shuō)什么呢??

掃一掃

學(xué)習(xí) Python 沒(méi)煩惱

近期文章

python爬蟲(chóng)入門01:教你在Chrome瀏覽器輕松抓包

python爬蟲(chóng)入門02:教你通過(guò)Fiddler進(jìn)行手機(jī)抓包

python爬蟲(chóng)03:那個(gè)Urllib的庫(kù)讓我們假裝是瀏覽器

點(diǎn)好看的人

會(huì)有好運(yùn)發(fā)生

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    91人妻人人精品人人爽| 99国产高清不卡视频| 亚洲熟女精品一区二区成人| 午夜精品国产精品久久久| 人妻亚洲一区二区三区| 国产亚洲欧美一区二区| 精品午夜福利无人区乱码| 日韩夫妻午夜性生活视频| 久久精品国产亚洲av久按摩| 亚洲欧美天堂精品在线| 美国黑人一级黄色大片| 一本久道久久综合中文字幕| 国产传媒免费观看视频| 国产乱淫av一区二区三区| 黄片免费播放一区二区| 久久国产青偷人人妻潘金莲| 欧美中文字幕日韩精品| 亚洲伦理中文字幕在线观看| 欧美精品二区中文乱码字幕高清 | 91精品国产av一区二区| 亚洲高清欧美中文字幕| 欧美日韩亚洲精品在线观看| 欧美一区二区日韩一区二区| 国产综合香蕉五月婷在线| 亚洲欧美日韩精品永久| 超薄丝袜足一区二区三区| 亚洲欧美日本国产不卡| 黄色在线免费高清观看| 亚洲日本中文字幕视频在线观看| 久久精品蜜桃一区二区av| 91久久精品中文内射| 亚洲夫妻性生活免费视频| 国产乱人伦精品一区二区三区四区 | 欧美日韩精品一区二区三区不卡| 大伊香蕉一区二区三区| 亚洲高清欧美中文字幕| 久久国产精品熟女一区二区三区| 亚洲欧洲一区二区综合精品| 高清不卡一卡二卡区在线| 成人日韩视频中文字幕| 伊人久久青草地综合婷婷|