python爬蟲(chóng)基礎(chǔ)測(cè)試

1requests基本使用

主要有g(shù)et/post/put三種方式,返回的是響應(yīng)對(duì)象(response object):
res = resquests.get/post/put(url,params,data,...)
對(duì)于每種方式(method)译柏,其可傳遞的參數(shù)包括以下 額 好多種:

參數(shù) 說(shuō)明 煮個(gè)小栗子
url 待獲取頁(yè)面的url鏈接 requests.get("http://tieba.baidu.com")
params 將字典或字節(jié)序列作為參數(shù)添加到url中 kw={"kw":"李毅"}
requests.get(url,params=kw)
# 得到的res為“http://tieba.baidu.com/f?kw=李毅”
data 字典镣煮,字節(jié)序列或文件對(duì)象,作為res的內(nèi)容 待補(bǔ)充
headers 字典艇纺,HTTP定制頭 header = {"User-Agent":"Mozilla/5.0"}
resq.get(url,headers=header)
timeout 設(shè)定超時(shí)時(shí)間怎静,單位為秒
proxies 字典類(lèi)型,設(shè)定訪問(wèn)代理服務(wù)器 proxie={"http:":"http://12.34.56.79:9527"}
resq.get(url,proxies=proxie)
verify 認(rèn)證SSL證書(shū)開(kāi)關(guān)黔衡,默認(rèn)為False
json JSON格式的數(shù)據(jù)蚓聘,作為resquests的內(nèi)容
auth 元祖,支持HTTP認(rèn)證功能
1.1 基本get請(qǐng)求
# ===============1盟劫、基本GET請(qǐng)求---百度搜索頁(yè)=====================
kw = {'wd':'花梨'}
res_1 = requests.get('https://www.baidu.com/',params=kw,headers=headers)
# 網(wǎng)頁(yè)內(nèi)容亂碼夜牡,默認(rèn)編碼是ISO-8859-1,修改
res_1.encoding = 'utf-8'

# 查看返回對(duì)象類(lèi)型和內(nèi)容---response對(duì)象
print(type(res_1))   # <class 'requests.models.Response'>
print(res_1.text)  # 返回的是Unicode格式的str數(shù)據(jù)
print(res_1.content)   # 返回的是二進(jìn)制字節(jié)流(bytes)數(shù)據(jù)
#查看完整url地址侣签,塘装,響應(yīng)頭部字符編碼 和響應(yīng)碼
print(res_1.url)     # https://www.baidu.com/
print(res_1.encoding)   # utf-8
print(res_1.status_code)  # 200
1.2 基本POST請(qǐng)求

對(duì)于POST請(qǐng)求,一般需要增加一些參數(shù)影所,最基本的利用data參數(shù)

# =======2蹦肴、基本post請(qǐng)求,有道詞典翻譯==============
formdata = {
    "type":"AUTO",
    "i":"i love python",
    "doctype":"json",
    "keyfrom":"fanyi.web",
    "ue":"utf-8",
    "action":"FY_BY_ENTER",
    "typeResult":"true"
}
url_2 = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
res_2 = requests.post(url_2,data=formdata,headers=headers)
print(res_2.text)
print(res_2.json())  # json文件可以直接顯示

1.3 與urllib urllib2的區(qū)別
  • (1)輸入kw等參數(shù)時(shí)
    在requests中猴娩,params可以接收字典類(lèi)型的參數(shù)
kw={"kw":"李毅"}
requests.get(url,params=kw)  # 此時(shí)requests自動(dòng)將kw自動(dòng)轉(zhuǎn)為url形式

但是在urllib中:

kw={"kw":"李毅"}
kw = urllib.urlencode(kw)  #將字典形式轉(zhuǎn)換為url編碼格式(字符串)
newurl = url +"?"+ kw 
  • (2)返回html內(nèi)容時(shí)
    在得到response對(duì)象后阴幌,res可以以兩種形式返回網(wǎng)頁(yè)內(nèi)容
html = res.text  # 返回的是str格式的文本內(nèi)容
html = res.content # 返回的是bytes格式的二進(jìn)制字節(jié)流勺阐,可以用來(lái)存儲(chǔ)圖片等內(nèi)容

而在urllib中,

res = urllib.request.urlopen(url)  # response對(duì)象
html = res.read()   
print(type(html))   # <class 'bytes'>
print(html)   # bytes格式
html = html.decode()   # 將bytes格式轉(zhuǎn)為str
print(html)  # str格式

2 XPath解析html頁(yè)面

2.0 前提知識(shí)

關(guān)于DOM矛双、HTML渊抽、XML的簡(jiǎn)單概念和關(guān)系參考我寫(xiě)的另一篇雜文DOM 及 HTML和XML

2.1 基本流程
從url到content.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市议忽,隨后出現(xiàn)的幾起案子懒闷,更是在濱河造成了極大的恐慌,老刑警劉巖栈幸,帶你破解...
    沈念sama閱讀 212,294評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愤估,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡侦镇,警方通過(guò)查閱死者的電腦和手機(jī)灵疮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)织阅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)壳繁,“玉大人,你說(shuō)我怎么就攤上這事荔棉∧致” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,790評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵润樱,是天一觀的道長(zhǎng)渣触。 經(jīng)常有香客問(wèn)我,道長(zhǎng)壹若,這世上最難降的妖魔是什么嗅钻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,595評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮店展,結(jié)果婚禮上养篓,老公的妹妹穿的比我還像新娘。我一直安慰自己赂蕴,他們只是感情好柳弄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,718評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著概说,像睡著了一般碧注。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糖赔,一...
    開(kāi)封第一講書(shū)人閱讀 49,906評(píng)論 1 290
  • 那天萍丐,我揣著相機(jī)與錄音,去河邊找鬼放典。 笑死逝变,一個(gè)胖子當(dāng)著我的面吹牛船万,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骨田,決...
    沈念sama閱讀 39,053評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼耿导,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了态贤?” 一聲冷哼從身側(cè)響起舱呻,我...
    開(kāi)封第一講書(shū)人閱讀 37,797評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悠汽,沒(méi)想到半個(gè)月后箱吕,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柿冲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,570評(píng)論 2 327
  • 正文 我和宋清朗相戀三年茬高,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片假抄。...
    茶點(diǎn)故事閱讀 38,711評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怎栽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宿饱,到底是詐尸還是另有隱情熏瞄,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評(píng)論 4 332
  • 正文 年R本政府宣布谬以,位于F島的核電站强饮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏为黎。R本人自食惡果不足惜邮丰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,018評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铭乾。 院中可真熱鬧剪廉,春花似錦、人聲如沸片橡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,796評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)捧书。三九已至吹泡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間经瓷,已是汗流浹背爆哑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舆吮,地道東北人揭朝。 一個(gè)月前我還...
    沈念sama閱讀 46,461評(píng)論 2 360
  • 正文 我出身青樓队贱,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親潭袱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柱嫌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,595評(píng)論 2 350

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