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