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

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

系統(tǒng) 1827 0

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

問題ID為如下標(biāo)紅數(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 # 準(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爬取知乎圖片代碼實現(xiàn)解析_第1張圖片

編寫代碼吧,下面的代碼注釋請仔細(xì)閱讀,中間有一個小BUG,需要手動把pic3修改為pic2這個地方目前原因不明確,可能是我本地網(wǎng)絡(luò)的原因,還有請在項目根目錄先創(chuàng)建一個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爬取知乎圖片代碼實現(xiàn)解析_第2張圖片

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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中山市| 贵定县| 九龙县| 青冈县| 大竹县| 昆山市| 慈溪市| 浮山县| 天津市| 玛曲县| 清镇市| 隆昌县| 彰化市| 长岛县| 林周县| 潜山县| 清镇市| 西贡区| 连江县| 达日县| 无极县| 蓬莱市| 团风县| 洱源县| 彰化市| 德令哈市| 夏河县| 甘洛县| 榕江县| 衡东县| 舞钢市| 蓬溪县| 通化县| 卢龙县| 香格里拉县| 山阴县| 香港 | 东乌珠穆沁旗| 砀山县| 安塞县| 许昌县|