欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬取知乎圖片代碼實現(xiàn)解析

 更新時間:2019年09月17日 11:19:08   作者:Python學習匯  
這篇文章主要介紹了Python爬取知乎圖片代碼實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

首先,需要獲取任意知乎的問題,只需要你輸入問題的ID,就可以獲取相關的頁面信息,比如最重要的合計有多少人回答問題。

問題ID為如下標紅數(shù)字

編寫代碼,下面的代碼用來檢測用戶輸入的是否是正確的ID,并且通過拼接URL去獲取該問題下面合計有多少答案。

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 # 準備插入數(shù)據(jù)
BASE_URL = "https://www.zhihu.com/question/{}"
def get_totle_answers(article_id):
  headers = {
    "user-agent": "需要自己補全 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( '<meta itemProp="answerCount" content="(\d*?)"/>')
      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("請輸入文章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é)如下圖展示

編寫代碼吧,下面的代碼注釋請仔細閱讀,中間有一個小BUG,需要手動把pic3修改為pic2這個地方目前原因不明確,可能是我本地網(wǎng)絡的原因,還有請在項目根目錄先創(chuàng)建一個imgs的文件夾,用來存儲圖片

  def download_img(self,data):
    ## 下載圖片
    for item in data["data"]:
      content = item["content"]
      pattern = re.compile('<noscript>(.*?)</noscript>')
      imgs = pattern.findall(content)
      if len(imgs) > 0:
        for img in imgs:
          match = re.search('<img src="(.*?)"', img)
          download = match.groups()[0]
          download = download.replace("pic3", "pic2") # 小BUG,pic3的下載不到
          print("正在下載{}".format(download), end="")
          try:
            with requests.Session() as s:
              with s.get(download) as img_down:
                # 獲取文件名稱
                file = download[download.rindex("/") + 1:]
                content = img_down.content
                with open("imgs/{}".format(file), "wb+") as f: # 這個地方進行了硬編碼
                  f.write(content)

                print("圖片下載完成", end="\n")
          except Exception as e:
            print(e.args)
      else:
        pass

運行結(jié)果為

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python的scipy.stats模塊中正態(tài)分布常用函數(shù)總結(jié)

    python的scipy.stats模塊中正態(tài)分布常用函數(shù)總結(jié)

    在本篇內(nèi)容里小編給大家整理的是一篇關于python的scipy.stats模塊中正態(tài)分布常用函數(shù)總結(jié)內(nèi)容,有興趣的朋友們可以學習參考下。
    2021-02-02
  • 對python模塊中多個類的用法詳解

    對python模塊中多個類的用法詳解

    今天小編就為大家分享一篇對python模塊中多個類的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套

    python函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套

    這篇文章主要給大家介紹python函數(shù)參數(shù)、名稱空間、以及函數(shù)嵌套的相關資料,想具體了解的小伙伴請和小編一起進入下面文章內(nèi)容吧
    2021-10-10
  • Django使用 Bootstrap 樣式修改書籍列表過程解析

    Django使用 Bootstrap 樣式修改書籍列表過程解析

    這篇文章主要介紹了Django使用 Bootstrap 樣式修改書籍列表過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Pandas缺失值填充 df.fillna()的實現(xiàn)

    Pandas缺失值填充 df.fillna()的實現(xiàn)

    本文主要介紹了Pandas缺失值填充 df.fillna()的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Python寫出新冠狀病毒確診人數(shù)地圖的方法

    Python寫出新冠狀病毒確診人數(shù)地圖的方法

    在本篇文章里小編給大家分享的是關于Python做新冠狀病毒確診人數(shù)地圖的詳解內(nèi)容,需要的朋友們可以學習下。
    2020-02-02
  • 解讀Python條件判斷邏輯演繹優(yōu)化編程思維

    解讀Python條件判斷邏輯演繹優(yōu)化編程思維

    條件判斷是編程中的重要概念,Python語言提供了多種方式來進行條件判斷,例如if、else、elif等,本文將深入探討Python中條件判斷的靈活應用,結(jié)合豐富的示例代碼展示其全面性
    2024-01-01
  • 約瑟夫問題的Python和C++求解方法

    約瑟夫問題的Python和C++求解方法

    這篇文章主要介紹了約瑟夫問題的Python和C++求解方法,通過其示例我們也可以看出如今寫法最簡潔的編程語言和最復雜的語言之間的對比:D 需要的朋友可以參考下
    2015-08-08
  • Python?JSON數(shù)據(jù)解析過程(最新推薦)

    Python?JSON數(shù)據(jù)解析過程(最新推薦)

    json模塊提供了將JSON格式的數(shù)據(jù)轉(zhuǎn)換為Python對象(如列表、字典等)以及將Python對象轉(zhuǎn)換為JSON格式的數(shù)據(jù)的方法,下面給大家分享使用json模塊解析JSON數(shù)據(jù)的常見方法,感興趣的朋友一起看看吧
    2024-02-02
  • Python shutil模塊用法實例分析

    Python shutil模塊用法實例分析

    這篇文章主要介紹了Python shutil模塊用法,結(jié)合實例形式分析了Python使用shutil模塊操作文件拷貝的相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2019-10-10

最新評論