python-data

Python 简单数据处理

互联网中常见的数据基本基于 json xml 或者 html。本文介绍几种个人常用的组件,下载方式自行搜索,文中api仅供参考


json

Python自带json库,转换后和字典的操作方式相同

常用api:

  • json.loads() 字符转json
  • json.dumps() json转字符

xml

xml转换用的lxml组件 或 minidom组件

lxml常用api:

  • xml_obj = etree.fromstring() 字符转xml
  • xml.find(‘’) 查找节点
  • root = Element(“xml”) 创建xml root节点
  • sub = SubElement(root,’xx’) 创建子节点
  • sub.text = ‘’ 子节点赋值
  • etree.tostring(root, “UTF-8”) xml转字符串

*. minidom也可使用

html

html用的BeautifulSoup4库进项处理,html相对前两种来说相对复杂,我们需要提取到数据往往需要很多步骤,这种需要发现网页代码规律尽量找唯一性较高参数进行抓取。

常用api:

  • html = BeautifulSoup(house_html, ‘lxml’) 创建html对象
  • html.find_all(‘li’, attrs={‘class’: ‘list-item’, ‘data-from’: ‘’}) 查找标签 可自定属性和类别查询
  • .find(class_=’house-title’).a[‘title’] 单个查询节点下的信息

使用中还可配合正则实现查询精准信息

python_request

python requests

requests 是出入python时就接触的网路请求神器,在学习了这么久后总结一些经验保存、学习。
这也是第一个python博客,顺便吐槽下 python的源码 注释真少 = = 好多都必须得看doc才能了解

安装

1
2
3
pip install requests
or
conda install requests (Anaconda)

RabbitMQ 拓展篇

jackson

在 rabbitMq 中还有个重要的组件是 MessageConverter,用于消息格式的设置。
默认使用amqp的 SimpleMessageConverter 使用text传输,在传输量较大的数据时比较消耗性能。
另一种就是 Jackson2JsonMessageConverter,使用json传输。

RabbitMQ 基础篇

消息队列

单线程中间件,主要用于异步通知、消息分发、缓存、分布式事务等场景。

RabbitMQ

主要有Exchange 交换器 和 Queue 队列功能组件。
生产者会向Exchange发送消息并且绑定一个RoutingKey,
Exchange 用来接收生产者发送的消息并通过模式和规则将这些消息路由给服务器中的队列,
Exchange通过BindingKey找到匹配的队列,Queue 用来保存消息直到发送给消费者。

aop

spring aop

通过自定义注解和aop实现参数校验.

配置

  • mvc 配置文件 添加
    1
    <aop:aspectj-autoproxy proxy-target-class="true"/>

开启自动切面代理

Linux 常用命令

Linux 命令

Tomcat Debug启动

1
2
3
./catalina.sh jpda start
默认启动.sh中的8000端口,指定端口命令
./catalina.sh jpda start -debug XXXX

springboot debug

1
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 yahu-rest2.jar --spring.profiles.active=test  --spring.config.location=classpath:/application.properties,/etc/config/yahu/application-test.properties