爬蟲2

請求方式:get 和 post

獲取AJAX加載的內(nèi)容 --用post,把數(shù)據(jù)存儲在request請求里的data=

有些網(wǎng)頁內(nèi)容使用AJAX請求加載橄碾,這種數(shù)據(jù)無法直接對網(wǎng)頁url進(jìn)行獲取。但是只要記住酵紫,AJAX請求一般返回給網(wǎng)頁的是JSON文件手负,只要對AJAX請求地址進(jìn)行POST或GET,就能返回JSON數(shù)據(jù)了。

? ? ? ? ? ? ? ? ? ? ? ? 爬取豆瓣熱門電影

import urllib.request

import urllib.parse

start=0

b=1

while True:

? ? url_base='http://movie.douban.com/j/chart/top_list?'

? ? url_kw={

? ? ? ? 'type': 11,

? ? ? ? 'interval_id': '100:90',

? ? ? ? 'action':'',

? ? ? ? 'start':start,

? ? ? ? 'limit': 20

? ? }

? ? url_all=url_base+urllib.parse.urlencode(url_kw)

? ? print(url_all)

? ? request=urllib.request.Request(url=url_all)

? ? response = urllib.request.urlopen(url=request)

? ? context = response.read()

? ? file_name = 'douban%s.html'%(b)

? ? with open(file_name, 'wb') as file:

? ? ? ? file.write(context)

? ? #通過解碼得到字符串

? ? ret1 = context.decode('utf-8')

? ? #因?yàn)閠rue與前端的True,沖突無法解析,所以要替換

? ? ret2 = ret1.replace('true','True').replace('false','False')

? ? ret3 = eval(ret2)

? ? print(ret3)

? ? print(len(ret3))

? ? if ret3!=[]:

? ? ? ? with open(file_name, 'w',encoding='utf-8') as file:

? ? ? ? ? ? for i in ret3:

? ? ? ? ? ? ? ? file.write(str(i)+'\n')

? ? ? ? start=start+20

? ? ? ? b+=1

? ? else:

? ? ? ? break

自定義opener對象

#自定義url opener對象

import urllib.request

#創(chuàng)建一個http對象

http_handler=urllib.request.HTTPHandler(debuglevel=1)

#創(chuàng)建一個opener對象

http_opener=urllib.request.build_opener(http_handler)

request = urllib.request.Request('http://www.sina.com')

#發(fā)送請求汛骂,獲取影響

response = http_opener.open(request)

content = response.read()

with open('./12_1.html','wb') as file:

? ? file.write(content)

urllib2的異常錯誤處理

import urllib.request

?request = urllib.request.Request(url='http://www.iloveyou.com/')

try:

? ?response = urllib.request.urlopen(url=request)

? except urllib.request.URLError as ex:

? ?print(ex)

?else:

? content = response.read()

? ? ?print(content)


?print('哦了...')

print('*'*100)

# request = urllib.request.Request(url='http://www.douyu.com/Jack_Cui.html')

request = urllib.request.Request(url='https://err.taobao.com/error1.html?c=404&u=https://www.taobao.com/markddddddddddddddddddddddddets/nvzhuang/dddddddddddddddtaobaonvzhuang?spm=a21bo.2017.201867-main.1.1819dddddddddddddddsac8a9XRYCTP&r=')

try:

? ? response = urllib.request.urlopen(url=request)

except urllib.request.HTTPError as ex:

? ? print(ex)

? ? print(dir(ex))

? ? print(ex.code)

? ? print(ex.getcode())

? ? print(ex.info())

? ? print(ex.msg)

? ? print(ex.reason)

else:

? ? content = response.read()

? ? print(content)

print('哦了...')

ProxyBasicAuthHandler(代理授權(quán)驗(yàn)證)

如果我們使用之前的代碼來使用私密代理,會報(bào)HTTP?407?錯誤色迂,表示代理沒有通過身份驗(yàn)證:

urllib.request.HTTPError:?HTTP?Error?407:?Proxy?Authentication?Required

所以我們需要改寫代碼香缺,通過: ? ? ? ? ? ? ? ? ? ? ? ? ?

#?1.構(gòu)建一個附帶Auth驗(yàn)證的的ProxyHandler處理器類對象

proxyauth_handler?=?urllib.request.ProxyHandler({"http"?:?"用戶名:密碼@IP:PORT"})

#?2.通過?build_opener()方法使用這個代理Handler對象,創(chuàng)建自定義opener對象歇僧,參數(shù)包括構(gòu)建的?proxy_handler

opener?=?urllib.request.build_opener(proxyauth_handler)

#?3.構(gòu)造Request?請求

request?=?urllib.request.Request("http://www.baidu.com/")

#?4.使用自定義opener發(fā)送請求

response?=?opener.open(request)

#?5.打印響應(yīng)內(nèi)容

print(response.read())

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末图张,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子诈悍,更是在濱河造成了極大的恐慌祸轮,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侥钳,死亡現(xiàn)場離奇詭異适袜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舷夺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門苦酱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來售貌,“玉大人,你說我怎么就攤上這事疫萤∷炭纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵扯饶,是天一觀的道長恒削。 經(jīng)常有香客問我,道長尾序,這世上最難降的妖魔是什么钓丰? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮每币,結(jié)果婚禮上携丁,老公的妹妹穿的比我還像新娘。我一直安慰自己脯爪,他們只是感情好则北,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痕慢,像睡著了一般洒敏。 火紅的嫁衣襯著肌膚如雪呜呐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機(jī)與錄音跟狱,去河邊找鬼蛮粮。 笑死溅固,一個胖子當(dāng)著我的面吹牛有缆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播励负,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼藕溅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了继榆?” 一聲冷哼從身側(cè)響起巾表,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎略吨,沒想到半個月后集币,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翠忠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年鞠苟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡当娱,死狀恐怖吃既,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情趾访,我是刑警寧澤态秧,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站扼鞋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏愤诱。R本人自食惡果不足惜云头,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望淫半。 院中可真熱鬧溃槐,春花似錦、人聲如沸科吭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽对人。三九已至谣殊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牺弄,已是汗流浹背姻几。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留势告,地道東北人蛇捌。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像咱台,于是被迫代替她去往敵國和親络拌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

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