eleme專案使用到的庫

megachen發表於2018-10-30

探索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部分


相關文章