python 初體驗

新手上路蹦浦,請多多指教
最近在掘金上買了一本小冊《[Redis 深度歷險:核心原理與應用實踐]》扭吁,只能在掘金的APP上看,不提供PDF文檔盲镶,沒辦法智末,只能自己動手了⊥胶樱花了幾個小時看了Python的語法,特此整理已做備忘

分析網(wǎng)絡請求的參數(shù)

分析網(wǎng)絡的請求參數(shù)可以借助谷歌的開發(fā)者工具,通過開發(fā)工具送漠,很容易就定位到文章章節(jié)的名字列表接口顽照,通過工具的headers,可以等到這個接口需要的參數(shù)


network.png

接下來可以將URL復制出來進行單獨請求闽寡,這樣返回的數(shù)據(jù)就更加明顯了


1533833754758.jpg

從網(wǎng)絡請求的分析代兵,可以得到這本小冊主要有一個獲取章節(jié)列表的接口和一個章節(jié)明細的接口,從接口也可以看出獲取列表接口的參數(shù)主要是'uid'爷狈, 'client_id'植影,'token' ,'src' ,' id'這幾個參數(shù)涎永,而獲取章節(jié)明細的還需要'sectionId'參數(shù)思币,而這個參數(shù)是列表接口返回的鹿响,接下來就可以進行寫代碼了

編碼的準備

安裝Python環(huán)境

這里就不啰嗦了

代碼內容

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import urllib.parse
import urllib.request
import json
import pdfkit
import time

class crawler():
#獲取數(shù)據(jù)

    def requestxiaoce():
    #列表接口
        url = 'https://xiaoce-cache-api-ms.juejin.im/v1/getListSection'
     #列表接口參數(shù)
        value= {
            'uid':'****',
            'client_id':'***',
            'token' :'****',
            'src' : '***',
         '  id': '***'
        }
#用戶代理,模擬瀏覽器請求
        user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36'
        headers = {'User-Agent': user_agent}
        data = urllib.parse.urlencode(value)
        #請求列表數(shù)據(jù)
        response_result = urllib.request.urlopen(url + '?' + data).read()
        #將返回數(shù)據(jù)進行編碼
        html = response_result.decode('utf-8')
        #將返回返回的數(shù)據(jù)轉成方便處理的dict數(shù)據(jù)
        htmlstr = json.loads(html)
        # 從上面的接口分析谷饿,可是看出請求明細接口的sectionId存放你在json 的key為d的value下
        titlelist = htmlstr.get('d')
        #明細接口的請求地址
        url = 'https://xiaoce-cache-api-ms.juejin.im/v1/getSection'
        
        content = '<head><meta charset="UTF-8"> </head>'
         #迭代請求獲取各個章節(jié)的明細數(shù)據(jù)
        for i in titlelist:
            value['sectionId'] = i.get('_id')
            data = urllib.parse.urlencode(value)
            response_result = urllib.request.urlopen(url + '?' + data).read()
            html = response_result.decode('utf-8')
            htmlstr = json.loads(html).get('d')['content']
            content = content + htmlstr
            time.sleep(1) #休眠一秒惶我,避免過頻訪問導致token失效
        #將獲取到的數(shù)據(jù)拼接進行導出
      # 使用pdfkit需要主要在機器上安裝wkhtmltopdf軟件
     #'/opt/bin/wkhtmltopdf'為軟件安裝的目錄
    # 可以通過命令'which wkhtmltopdf'獲取軟件路徑
        config = pdfkit.configuration(wkhtmltopdf='/opt/bin/wkhtmltopdf')

        pdfkit.from_string(content, '/Users/xushaoxin/Desktop/Redis 深度歷險:核心原理與應用實踐.pdf',configuration =config)

        return content

crawler.requestxiaoce()

拓展

根據(jù)上面獲取到的PDF沒有格式,很難閱讀博投,這個時候就需要需要將它格式化便于閱讀
從獲取到的數(shù)據(jù)內容绸贡,可以這個文檔是用md格式的,可以使用Python的markdown工具包進行將其轉成html格式的文檔毅哗,如果要求比較高听怕,還可以給這個文件內容添加各個標簽的樣式,這里就不展開了

import markdown
....
# hrmlstr為獲取到的內容數(shù)據(jù)
markdown.markdown(htmlstr)

效果
1533882478180.jpg
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末虑绵,一起剝皮案震驚了整個濱河市尿瞭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒸殿,老刑警劉巖筷厘,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宏所,居然都是意外死亡酥艳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門爬骤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來充石,“玉大人,你說我怎么就攤上這事霞玄≈枇澹” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵坷剧,是天一觀的道長惰爬。 經常有香客問我,道長惫企,這世上最難降的妖魔是什么撕瞧? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮狞尔,結果婚禮上丛版,老公的妹妹穿的比我還像新娘。我一直安慰自己偏序,他們只是感情好页畦,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著研儒,像睡著了一般豫缨。 火紅的嫁衣襯著肌膚如雪独令。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天州胳,我揣著相機與錄音记焊,去河邊找鬼。 笑死栓撞,一個胖子當著我的面吹牛遍膜,可吹牛的內容都是我干的。 我是一名探鬼主播瓤湘,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼瓢颅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弛说?” 一聲冷哼從身側響起挽懦,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎木人,沒想到半個月后信柿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡醒第,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年渔嚷,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稠曼。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡形病,死狀恐怖,靈堂內的尸體忽然破棺而出霞幅,到底是詐尸還是另有隱情漠吻,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布司恳,位于F島的核電站途乃,受9級特大地震影響,放射性物質發(fā)生泄漏扔傅。R本人自食惡果不足惜欺劳,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望铅鲤。 院中可真熱鬧,春花似錦枫弟、人聲如沸邢享。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽骇塘。三九已至伊履,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間款违,已是汗流浹背唐瀑。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留插爹,地道東北人哄辣。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像赠尾,于是被迫代替她去往敵國和親力穗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,273評論 25 707
  • 女孩喜歡一個男人气嫁,給對方發(fā)出去的消息晚回幾秒当窗,就會緊張亂想到天涯海角,因為在乎因為那里有她的少女夢有她的愿望寸宵,也有...
    lirs閱讀 316評論 0 0
  • 關注“文哥解課”崖面,一起分享陪伴孩子的快樂! 現(xiàn)在游戲和娛樂的產業(yè)發(fā)展迅速梯影,大人和孩子們都喜歡看電影巫员、動畫片,喜歡玩...
    文哥解課閱讀 679評論 0 1
  • 1.做一個有獨特想法的人 你會不會有這種感覺光酣,經常想說點什么想表達點什么疏遏,明明想說出來,卻找不到能形容的詞語救军,其實...
    蕭雅琴子閱讀 159評論 0 4