最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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( '<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中,我們采用簡單的正則表達(dá)式將他匹配出來。細(xì)節(jié)如下圖展示

編寫代碼吧,下面的代碼注釋請仔細(xì)閱讀,中間有一個小BUG,需要手動把pic3修改為pic2這個地方目前原因不明確,可能是我本地網(wǎng)絡(luò)的原因,還有請?jiān)陧?xià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: # 這個地方進(jìn)行了硬編碼
                  f.write(content)

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

運(yùn)行結(jié)果為

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

相關(guān)文章

  • Pytorch mask_select 函數(shù)的用法詳解

    Pytorch mask_select 函數(shù)的用法詳解

    今天小編就為大家分享一篇Pytorch mask_select 函數(shù)的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Pyqt清空某一個QTreeewidgetItem下的所有分支方法

    Pyqt清空某一個QTreeewidgetItem下的所有分支方法

    今天小編就為大家分享一篇Pyqt清空某一個QTreeewidgetItem下的所有分支方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python網(wǎng)絡(luò)編程詳解

    Python網(wǎng)絡(luò)編程詳解

    這篇文章主要介紹了Python網(wǎng)絡(luò)編程詳解,涉及具體代碼示例,還是挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Python使用configparser讀取ini配置文件

    Python使用configparser讀取ini配置文件

    這篇文章主要介紹了Python使用configparser讀取ini配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • python樹狀打印項(xiàng)目路徑的實(shí)現(xiàn)

    python樹狀打印項(xiàng)目路徑的實(shí)現(xiàn)

    在Python中,要打印當(dāng)前路徑,可以使用os模塊中的getcwd()函數(shù),本文主要介紹了python樹狀打印項(xiàng)目路徑,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Linux重裝miniconda的方法步驟

    Linux重裝miniconda的方法步驟

    在Linux系統(tǒng)中,使用miniconda可以方便的進(jìn)行軟件的安裝和環(huán)境配置,本文就來介紹一下Linux重裝miniconda的方法步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • python入門之井字棋小游戲

    python入門之井字棋小游戲

    這篇文章主要為大家詳細(xì)介紹了python入門學(xué)習(xí)之井字棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • postman發(fā)送文件請求并以python服務(wù)接收方式

    postman發(fā)送文件請求并以python服務(wù)接收方式

    這篇文章主要介紹了postman發(fā)送文件請求并以python服務(wù)接收方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • python matplotlib擬合直線的實(shí)現(xiàn)

    python matplotlib擬合直線的實(shí)現(xiàn)

    這篇文章主要介紹了python matplotlib擬合直線的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • jupyter notebook更換皮膚主題的實(shí)現(xiàn)

    jupyter notebook更換皮膚主題的實(shí)現(xiàn)

    這篇文章主要介紹了jupyter notebook更換皮膚主題的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論

聊城市| 彩票| 乐平市| 嘉禾县| 耿马| 兴城市| 旬阳县| 海淀区| 奉新县| 正安县| 乌海市| 普安县| 呼图壁县| 濮阳县| 崇明县| 来宾市| 洛隆县| 淳安县| 湘乡市| 闽侯县| 伊宁县| 涟水县| 长沙市| 正定县| 富顺县| 迁西县| 寻甸| 富蕴县| 宝山区| 枝江市| 兴城市| 新营市| 黔西县| 长岭县| 海林市| 平谷区| 来安县| 德钦县| 调兵山市| 琼海市| 滁州市|