app 服務端編寫(2),python

989868A2-723E-41F2-9A47-9E413C25F7C5.png

前一篇說道爬蟲,數據爬到了自然要和數據庫連接還有存儲,這里我在學習爬蟲的時候以為get到了一個新名稱,分布式爬蟲,還沒有深研究了解的可以賜教。

數據庫

爬取到的數據放到數據庫

lass DBManager():
    host = ''
    port = 0

    def __init__(self):
        self.host = 'localhost'
        self.port = 27017
        print  'init db'

    def get_db(self):
        client = pymongo.MongoClient(host=self.host, port=self.port)
        db = client['tuniu']
        return db

    def get_dbItemsNum(self,dbname):
        db = self.get_db()
        collection = db[dbname]
        num = collection.find().count()
        return num


        return ;
    def insert_data_mg(self,db, dbname, json):

        collection = db[dbname]

        if collection.find().count() > 500 :
            collection.removeall
            collection.save(json)
        else:
            collection.save(json)

這里的host 和port 根據我對其他項目的觀察,是要和網絡web 的定義相關的,這里我寫的本地,就沒有關聯。
MongoClient 是一切的起點,后期的增刪改查 就和我們大學學的數據庫聯系起來的

對外服務Flask

Flask 是一個web 服務框架
具體介紹:http://docs.jinkan.org/docs/flask/

就是訪問數據庫通過Flask 公開對數據訪問,這里就可能會涉及到數據加密,數據安全等功能,因為是demo 簡單了一下

@app.route('/api/v1/xia_ifanr', methods=['GET', 'POST'])
def get_list_ifanr():
    db = conn.tuniu
    collection = db['ifanr']
    page_num = int(request.form['pageNum'])
    items = collection.find().skip(page_num * 10).limit(10).sort([("index",-1)])
    data = {'data': items}
    return dumps(data)

開始打算做個途牛的app demo 后來發現api 太多了就放棄了。

37B1A984-D121-4B6C-990A-49803F432B1F.png

運行起來,就這效果了,你的每一次訪問,都是自己的訪問記錄
都會打印到這里。

下來就是app 編寫了,這里不僅僅是app 的編寫,可能還有對于web 頁面等一切前端的頁面編寫。
寫到這里,我也明白了,為什么后端個別人看不上前端,因為前端對于服務端僅僅是寫頁面的,沒有什么技術含量。這點還是可以討論的。

網絡配置

如果你是自己電腦不是在云端部署而是在自己的電腦本地部署,那就需要一個工具了,就是一個花瓶Charles 這個工具了,如果僅僅是模擬器不是真機調試,那么這個也不需要了。

模擬器.png

這樣簡單的app 開始他的web 服務了

1C5D3B24-65A7-473F-A8F1-10E810BD7739.png

訪問記錄,這里還有個問題,我還沒有探索,就是多線程的問題,因為目前我就一個模擬器,沒有出現多個請求不過來的情況。并發對于Flask估計也是考驗。
特別是高并發。

簡單總結

到這里一個app 簡單簡答架構,就ok,因為app是為心愛的人寫的,名字起的比較中二,不過對于技術分析,這個可以忽略不計。
下一步,就是更多的方式的數據爬取了和網絡優化,分層+多途徑+多情況分析,但是可能不會逃離這個主干。
下一篇,異步爬去,繼續。。。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容