探索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属性的, 这个属性只有
app = web.application(urls, globals())
```python
app.run()
``` - 才会被添加, 其中ctx是context的缩写
- web.input()获取get请求的数据
web.data()返回post的data部分