學(xué)爬蟲的第三天

我感覺requests庫(kù)是一個(gè)可以完全取代urllib庫(kù)的庫(kù),因?yàn)槲医酉聛硭鶎W(xué)的內(nèi)容基本上就是前面urllib庫(kù)的重復(fù)操作,但是代碼量會(huì)稍微少一些、理解起來也容易些罷了,或者我可以借助Requests官方文檔的幾句話(官方調(diào)戲如下):

Requests:讓 HTTP 服務(wù)人類

學(xué)習(xí)的內(nèi)容:(requests庫(kù))get

import requests


params = {
    'wd': '中國(guó)'
}
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'
}
url = 'https://www.baidu.com/s'
resp = requests.get(url, params=params, headers=headers)  # 帶參數(shù)申請(qǐng)

with open('baidu.html', 'w', encoding='utf-8') as fp:
    fp.write(resp.content.decode('utf-8'))

(requests庫(kù))get 的其他內(nèi)容【承接上文】

resp.url                       # 返回 url 地址
resp.encoding                  # 返回響應(yīng)頭部字符編碼拇派,準(zhǔn)確性較低,省時(shí)
resp.apparent_encoding         # 返回響應(yīng)頭部字符編碼凿跳,準(zhǔn)確性較高件豌,耗時(shí)
resp.status_code               # 返回響應(yīng)碼,200 為正常

type(resp.text)                # str 類型
type(resp.content)             # byte 類型
resp.text                      # 根據(jù) resp.encoding 自動(dòng)轉(zhuǎn)換網(wǎng)頁(yè)內(nèi)容控嗜,準(zhǔn)確性較低
resp.content                   # 顯示網(wǎng)頁(yè)原內(nèi)容茧彤,即 byte 類型網(wǎng)頁(yè)內(nèi)容
resp.content.decode('utf-8')   # 顯示 str 類型網(wǎng)頁(yè)內(nèi)容

其實(shí)上面的get的方法相當(dāng)于篩選所需內(nèi)容(html)并返回

在百度上搜索中國(guó),并接收響應(yīng) resp躬审,對(duì)于 resp.textresp.content.decode('utf-8')棘街,雖然都是 str 類型網(wǎng)頁(yè)內(nèi)容,但編碼方式不同承边,一般使用 utf-8 的編碼方式是正確的遭殉,使用 resp.content.decode('utf-8') 打開后內(nèi)容如下

百度搜中國(guó)的網(wǎng)頁(yè)

學(xué)習(xí)的內(nèi)容:(requests庫(kù))post

import requests


data = {
    'first': 'true',
    'pn': '1',
    'kd': 'Python'
}
headers = {
    'referer': 'https://www.lagou.com/jobs/list_Python?px=default&city=%E6%AD%A6%E6%B1%89',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'
}
url = 'https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E6%AD%A6%E6%B1%89&needAddtionalResult=false'
resp = requests.post(url, data=data, headers=headers)

print(type(resp.json()))  # dict 類型
print(resp.json())  # 將 json 數(shù)據(jù)中的字符串轉(zhuǎn)換成列表或字典的形式

打印如下:

<class 'dict'>
{'status': False, 'msg': '您操作太頻繁,請(qǐng)稍后再訪問', 'clientIp': '223.73.72.68', 'state': 2402}

沒錯(cuò),又是那個(gè)網(wǎng)站(拉鉤網(wǎng))博助,我又爬取失敗了险污,其實(shí)這也在我的預(yù)料之中,因?yàn)槲腋杏Xrequests庫(kù)就是一個(gè)urllib庫(kù)的翻版富岳,使用方法底層應(yīng)該還是差不多的蛔糯,所以這次爬取的結(jié)果和上次也應(yīng)該是一樣的

其實(shí)postget大同小異的啦,只是請(qǐng)求的方式不同罷了(根據(jù)目標(biāo)網(wǎng)頁(yè)的指定方式來)窖式,兩者使用的方法還是非常類似的

學(xué)習(xí)的內(nèi)容:requests.requests 庫(kù)

import requests

# 模板
request.requests(method, url, **kwargs)


# method
requests.post()
requests.get()


# **kwargs
params = {
    'wd': 'xiaotuan'
}
requests.method(url, params=params)  # 網(wǎng)址緊跟著的搜索參數(shù)

data = {
    'kd': 'Python'
}
requests.method(url, data=data)  # 網(wǎng)頁(yè) From data 的數(shù)據(jù)域

headers = {
    'referer': '123',
    'user-agent': '456'
    'cookie': '798'
}
requests.method(url, headers=headers)  # 網(wǎng)頁(yè) Request Headers 的請(qǐng)求頭

proxy = {
    'http': '101.17.132.186:18661'
}
requests.method(url, proxies=proxy)  # 加入 ip 代理

requests.method(url, verify=False)  # 處理不信任的 SSL證書的網(wǎng)站

resp = requests.method()  # 返回的響應(yīng)頭
resp.json()  # 將 json 數(shù)據(jù)中的字符串轉(zhuǎn)換成列表或字典的形式

resp = requests.method()  # 返回的響應(yīng)頭
resp.cookies.get_dict()  # 以字典的形式獲取 cookie 信息

學(xué)習(xí)的內(nèi)容:(requests庫(kù))session

import requests


data = {
    'email': '13727077344',
    'password': ''          # 密碼不告訴你嘿嘿
}
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'
}

login_url = 'http://www.renren.com/PLogin.do'
session = requests.Session()
session.post(login_url, data=data, headers=headers)

dapeng_url = 'http://www.renren.com/880151247/profile'
resp = session.get(dapeng_url)

with open('renren.html', 'w', encoding='utf-8',) as fp:
    fp.write(resp.content.decode('utf-8'))

我感覺session很有幾天前學(xué)的opener的味道蚁飒,session對(duì)象能夠幫我們?cè)诓煌?qǐng)求中共享參數(shù),也會(huì)在同一個(gè)session實(shí)例發(fā)出的所有請(qǐng)求之間保持cookies

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萝喘,一起剝皮案震驚了整個(gè)濱河市淮逻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阁簸,老刑警劉巖爬早,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異启妹,居然都是意外死亡筛严,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門饶米,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桨啃,“玉大人车胡,你說我怎么就攤上這事≌振” “怎么了吨拍?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)网杆。 經(jīng)常有香客問我,道長(zhǎng)伊滋,這世上最難降的妖魔是什么碳却? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮笑旺,結(jié)果婚禮上昼浦,老公的妹妹穿的比我還像新娘。我一直安慰自己筒主,他們只是感情好关噪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著乌妙,像睡著了一般使兔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上藤韵,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天虐沥,我揣著相機(jī)與錄音,去河邊找鬼泽艘。 笑死欲险,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匹涮。 我是一名探鬼主播天试,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼然低!你這毒婦竟也來了喜每?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤脚翘,失蹤者是張志新(化名)和其女友劉穎灼卢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體来农,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鞋真,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沃于。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涩咖。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡海诲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出檩互,到底是詐尸還是另有隱情特幔,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布闸昨,位于F島的核電站蚯斯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饵较。R本人自食惡果不足惜拍嵌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望循诉。 院中可真熱鬧横辆,春花似錦、人聲如沸茄猫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)划纽。三九已至脆侮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阿浓,已是汗流浹背他嚷。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芭毙,地道東北人筋蓖。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像退敦,于是被迫代替她去往敵國(guó)和親粘咖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容