天天看點

eleme 項目使用到的庫探索eleme用到的庫

探索eleme用到的庫

xml

re庫

  • 通過regex = re.compile(pattern)傳回一個pattern對象, 通過該對象比對正規表達式的字元串, 最好在模式中使用r'some'原始字元串
  • regex有很多的方法, 最常用的就是findall(), 因為這個方法傳回的是一個字元串清單, 而其他的傳回的是Match對象
  • match(), 傳回一個Match對象, 要擷取其中維護的值, 需要調用group()方法
  • search(), 傳回一個Match對象, 要擷取其中維護的值, 需要調用group()方法

requests庫(對urllib庫的封裝)

  • response = requests.get(url, data=data, headers=headers), 發送get請求
  • response = requests.post(url, data=data, headers=headers), 發送post請求

response對象的屬性

  • status_code
  • url
  • headers
  • text: 文本
  • content: 二進制
  • encode: 預設為iso, 如果text中有中文會亂碼, 如果修改了encode='utf-8', 則response對象在response.text會自己處理編碼

phantomjs工具(一開始有嘗試了一下, 運作起來是真的慢, 其實在項目中并沒有使用這個庫, 但還是mark一下)

  • 一個為界面的浏覽器, 是一個浏覽器核心, 可以渲染js
  • 一般需要通過selenium庫将phantomjs和python對接起來

selenium

web.py(一個輕量級的web架構)

  • 注意(坑): web.ctx.env如果直接在終端輸入會提示沒有env屬性的, 這個屬性隻有

    ```python

    app = web.application(urls, globals())

    app.run()

    ```

  • 才會被添加, 其中ctx是context的縮寫
  • web.input()擷取get請求的資料
  • web.data()傳回post的data部分