本篇文章為大家展示了使用Python怎么爬取知乎圖片,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!import requests import re import pymongo import time DATABASE_IP = '127.0.0.1' DATABASE_PORT = 27017 DATABASE_NAME = 'sun' client = pymongo.MongoClient(DATABASE_IP,DATABASE_PORT) db = client.sun db.authenticate("dba", "dba") collection = db.zhihuone # 準(zhǔn)備插入數(shù)據(jù) BASE_URL = "https://www.zhihu.com/question/{}" def get_totle_answers(article_id): headers = { "user-agent": "需要自己補(bǔ)全 Mozilla/5.0 (Windows NT 10.0; WOW64)" } with requests.Session() as s: with s.get(BASE_URL.format(article_id),headers=headers,timeout=3) as rep: html = rep.text pattern =re.compile( '') s = pattern.search(html) print("查找到{}條數(shù)據(jù)".format(s.groups()[0])) return s.groups()[0] if __name__ == '__main__': # 用死循環(huán)判斷用戶輸入的是否是數(shù)字 article_id = "" while not article_id.isdigit(): article_id = input("請(qǐng)輸入文章ID:") totle = get_totle_answers(article_id) if int(totle)>0: zhi = ZhihuOne(article_id,totle) zhi.run() else: print("沒有任何數(shù)據(jù)!")
完善圖片下載部分,圖片下載地址在查閱過程中發(fā)現(xiàn),存在json字段的content中,我們采用簡(jiǎn)單的正則表達(dá)式將他匹配出來。細(xì)節(jié)如下圖展示
編寫代碼吧,下面的代碼注釋請(qǐng)仔細(xì)閱讀,中間有一個(gè)小BUG,需要手動(dòng)把pic3修改為pic2這個(gè)地方目前原因不明確,可能是我本地網(wǎng)絡(luò)的原因,還有請(qǐng)?jiān)陧?xiàng)目根目錄先創(chuàng)建一個(gè)imgs的文件夾,用來存儲(chǔ)圖片
def download_img(self,data): ## 下載圖片 for item in data["data"]: content = item["content"] pattern = re.compile('') imgs = pattern.findall(content) if len(imgs) > 0: for img in imgs: match = re.search('上述內(nèi)容就是使用Python怎么爬取知乎圖片,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前題目:使用Python怎么爬取知乎圖片-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/djcegc.html