溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用requests爬取漂亮照片

發(fā)布時間:2021-12-27 10:57:23 來源:億速云 閱讀:194 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“怎么用requests爬取漂亮照片”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么用requests爬取漂亮照片”吧!

selenium是什么?


selenium自動化瀏覽器。就是這樣!你如何運用這種力量完全取決于你自己。它主要用于自動化web應(yīng)用程序以進行測試,但當(dāng)然不限于此。無聊的基于web的管理任務(wù)也可以(也應(yīng)該)自動化。


一些大型瀏覽器廠商已經(jīng)(或正在)采取措施使Selenium成為其瀏覽器的本地部分,這些廠商支持Selenium。它也是無數(shù)其他瀏覽器自動化工具、api和框架的核心技術(shù)。


可以說selenium的本職工作并不是用來爬蟲的,而是用于自動化Web應(yīng)用程序的測試目的。所以用selenium來爬知乎上面的圖其實是一種比較劍走偏鋒的做法,這也解釋為了為什么爬取量不是很樂觀。


什么是Requests

來看看 Requests的文檔:Requests 唯一的一個非轉(zhuǎn)基因的 Python HTTP 庫,人類可以安全享用。警告:非專業(yè)使用其他 HTTP 庫會導(dǎo)致危險的副作用,包括:安全缺陷癥、冗余代碼癥、重新發(fā)明輪子癥、啃文檔癥、抑郁、頭疼、甚至死亡。

從這個幽默的介紹中,不難看出來Requests作者對于Requests非常有自信,我們用Requests爬知乎圖片也剛好驗證了這一點。



爬起來!


我們按照慣例簡要說明一下爬蟲步驟:


0 1      
找到相關(guān)的問題,獲取問題id

怎么用requests爬取漂亮照片

怎么用requests爬取漂亮照片


如上圖所示,我們需要的id就在紅色框線里面。



0 2      
用requests解析網(wǎng)頁


核心代碼:


get_url = 'https://www.zhihu.com/api/v4/questions/'+id+'/answers?include=data[*].is_normal,admin_closed_comment,reward_info,is_collapsed,annotation_action,annotation_detail,collapse_reason,is_sticky,collapsed_by,suggest_edit,comment_count,can_comment,content,editable_content,voteup_count,reshipment_settings,comment_permission,created_time,updated_time,review_info,relevant_info,question,excerpt,relationship.is_authorized,is_author,voting,is_thanked,is_nothelp;data[*].mark_infos[*].url;data[*].author.follower_count,badge[*].topics&limit=5&offset='+str(offset)+'&sort_by=default'
       header = {            'User-Agent': "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0",            'Host': "www.zhihu.com",        }
       r = requests.get(get_url, verify=False, headers=header)        content = r.content.decode("utf-8")        txt = json.loads(content)


我們把網(wǎng)頁信息解析到了txt中。


0 3      
匹配獲得圖片地址


核心代碼:


imgUrls = re.findall(r'data-original="([^"]+)"', str(txt))imgUrls = list(set(imgUrls))for imgUrl in imgUrls:            try:                splitPath = imgUrl.split('.')                fTail = splitPath.pop()                print(fTail)                if len(fTail) > 3 :                    fTail = 'jpg'                fileName = path +"/" + str(number) + "."+fTail                                img_data = urllib.request.urlopen(imgUrl).read()


在獲取txt后,我們需要用正則表達式匹配圖片的地址,然后根據(jù)這個地址下載圖片到本地。

到此,相信大家對“怎么用requests爬取漂亮照片”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI