日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統(tǒng) 1914 0

首先,需要獲取任意知乎的問題,只需要你輸入問題的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( '
            
            ')
      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é)如下圖展示

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

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

            
  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('
            
          

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

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

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 唐河县| 澄迈县| 兴海县| 卢湾区| 阿图什市| 利川市| 交城县| 随州市| 钟祥市| 武川县| 鹤山市| 荆门市| 吉安县| 郎溪县| 滕州市| 辽宁省| 鹤山市| 来宾市| 东丽区| 龙川县| 安西县| 大庆市| 织金县| 高密市| 遵义县| 康乐县| 乐陵市| 交城县| 扶风县| 天津市| 剑阁县| 上林县| 吉林省| 太仆寺旗| 泸西县| 咸阳市| 三亚市| 平远县| 洪洞县| 浙江省| 湖北省|