首页 > 技术文章 > eleme 项目使用到的库

megachen 2018-10-30 20:14 原文

探索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())
    app.run()
    
  • 才会被添加, 其中ctx是context的缩写
  • web.input()获取get请求的数据
  • web.data()返回post的data部分

推荐阅读