topic

怎么用Python写爬虫抓取网页数据

半腔热情 提交于 2019-11-29 13:06:44
机器学习首先面临的一个问题就是准备数据,数据的来源大概有这么几种:公司积累数据,购买,交换,政府机构及企业公开的数据,通过爬虫从网上抓取。本篇介绍怎么写一个爬虫从网上抓取公开的数据。 很多语言都可以写爬虫,但是不同语言的难易程度不同,Python作为一种解释型的胶水语言,上手简单、入门容易,标准库齐全,还有丰富的各种开源库,语言本身提供了很多提高开发效率的语法糖,开发效率高,总之“ 人生苦短,快用Python ”(Life is short, you need Python!)。在Web网站开发,科学计算,数据挖掘/分析,人工智能等很多领域广泛使用。 开发环境配置,Python3.5.2,Scrapy1.2.1,使用pip安装scrapy,命令:pip3 install Scrapy,此命令在Mac下会自动安装Scrapy的依赖包,安装过程中如果出现网络超时,多试几次。 创建工程 首先创建一个 Scrapy 工程,工程名为: kiwi ,命令: scrapy startproject kiwi ,将创建一些文件夹和文件模板。 定义数据结构 settings.py是一些设置信息,items.py用来保存解析出来的数据,在此文件里定义一些数据结构,示例代码: 1 # -*- coding: utf-8 -*- 2 3 # Define here the models for your

Go操作NSQ

喜你入骨 提交于 2019-11-29 12:15:43
NSQ是目前比较流行的一个分布式的消息队列,本文主要介绍了NSQ及Go语言如何操作NSQ。 NSQ NSQ介绍 NSQ 是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异。 NSQ的优势有以下优势: NSQ提倡分布式和分散的拓扑,没有单点故障,支持容错和高可用性,并提供可靠的消息交付保证 NSQ支持横向扩展,没有任何集中式代理。 NSQ易于配置和部署,并且内置了管理界面。 NSQ的应用场景 通常来说,消息队列都适用以下场景。 异步处理 参照下图利用消息队列把业务流程中的非关键流程异步化,从而显著降低业务请求的响应时间。 应用解耦 通过使用消息队列将不同的业务逻辑解耦,降低系统间的耦合,提高系统的健壮性。后续有其他业务要使用订单数据可直接订阅消息队列,提高系统的灵活性。 流量削峰 类似秒杀(大秒)等场景下,某一时间可能会产生大量的请求,使用消息队列能够为后端处理请求提供一定的缓冲区,保证后端服务的稳定性。 安装 官方下载页面 根据自己的平台下载并解压即可。 NSQ组件 nsqd nsqd是一个守护进程,它接收、排队并向客户端发送消息。 启动 nsqd ,指定 -broadcast-address=127.0.0.1 来配置广播地址 ./nsqd -broadcast-address=127.0.0.1 如果是在搭配 nsqlookupd 使用的模式下需要还指定

Kafka shell

自作多情 提交于 2019-11-29 11:59:17
Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topic。 Partition:主要为了做负载,实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。 一、topic 操作 # 查看当前服务器中的所有 topic kafka-topics.sh --zookeeper h136:2181 --list # 创建 topic,副本数不能超过节点数 kafka-topics.sh --zookeeper h136:2181 --create --replication-factor 3 --partitions 1 --topic first # 选项说明: # --topic:定义 topic 名 # --replication-factor:定义副本数 # --partitions:定义分区数 # 查看某个 Topic 的详情 bin/kafka-topics.sh --zookeeper h136:2181 --describe --topic first # 修改分区数 bin/kafka-topics.sh --zookeeper h136:2181 --alter --topic first --partitions 3 # 删除

activeMQ入门(发布订阅消息)

淺唱寂寞╮ 提交于 2019-11-29 07:02:20
发送主题(topic)类 package com.jason.testmq; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.ObjectMessage; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; public class SendTopic { private static final String url = "tcp://localhost:61616"; private static final String TOPIC_NAME = "choice.topic"; //private String expectedBody = "<hello>world!two</hello>"; //private String expectedBody = "stop"; public void sendMessage

rosbag指令相关整理

北城余情 提交于 2019-11-29 06:44:29
在ROS数据集中去除某些Topic rosbag filter input.bag output.bag "topic !='topic1' and topic !='topic2' ... " 在ROS数据集中记录某些Topic rosbag filter input.bag output.bag "topic !='topic1' or topic !='topic2' ... " 在ROS数据集中记录指定时间戳的子集,截取数据集指定时间子集 rosbag filter my.bag out.bag "t.to_sec() >= t1 and t.to_sec() <= t2" 如果只播放感兴趣的 topic ,则用命令 rosbag play <bagfile> --topic /topic1 如果希望 rosbag 循环播放,可以用命令 rosbag play -l <bagfile> # -l == --loop 暂停数据集播放 rosbag play --pause //开始运行bag时不发布数据,直到你按下空格键它才开始发布,同样你再按空格键rosbag又会暂停发布 记录数据集 rosbag record -a ---录制全部topic rosbag record -O bagname /topic1 /topic2 ---录制指定topic,并命名 rosbag

sql--查询一天内每小时的数据

£可爱£侵袭症+ 提交于 2019-11-29 06:33:35
一、建一张工具表只有hour一个字段 0-23,或者用mysql自带的mysql.help_topic筛选0-23 二、以0-23的那个为主表左关联,为Null设为0 ifnull(字段,0) 附sql SELECT t.help_topic_id as hour, ifNULL(s.number, 0) AS number FROM mysql.help_topic t LEFT JOIN ( SELECT HOUR (r.capture_time) AS HOUR, count(*) AS number FROM md_capture_record r WHERE DATE_FORMAT(r.capture_time, '%y-%M-%d') = DATE_FORMAT(NOW(), '%y-%M-%d') GROUP BY HOUR ) s ON t.help_topic_id = s. HOUR where t.help_topic_id >=0 and t.help_topic_id<24; ORDER BY hour 来源: https://www.cnblogs.com/chaoswu/p/11460231.html

Scala Spark Streaming + Kafka + Zookeeper完成数据的发布和消费

只愿长相守 提交于 2019-11-29 06:17:39
一、Spark Streaming    Spark Streaming是核心Spark API的扩展,可实现实时数据流的可扩展,高吞吐量,容错流处理。 数据可以从许多来源(如Kafka,Flume,Kinesis或TCP sockets)中提取,并且可以使用以高级函数表示的复杂算法进行处理 map ,例如 reduce , join 和 window 。 最后,处理后的数据可以推送到文件系统,数据库和实时仪表板。 二、SparkStreaming实现   Kafka和Zookeeper事先装过, 没有先安装Zookeeper,则无法运行Kafka服务。 但是,已经为CloudKarafka群集安装并配置了Zookeeper。   我搭建的是 Scala 的 maven 项目,项目和环境都在单机上运行。   1、先看我的 pom.xml 配置: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org

AcitvieMQ-VirtualTopic springboot整合activemq实现虚拟topic

梦想与她 提交于 2019-11-29 05:47:38
1. Queue 点对点 一条消息只能被一个消费者消费,且是持久化消息-当没有可用的消费者时,该消息保存直到被消费位置;当消息被消费者收到但不响应时,该消息会一直保留或会转到另一个消费者,这是在有多个消费者的情况。当一个Queue有多个可用消费者的时候,可以在这些消费者中起到负载均衡的作用。 2. Topic 发布-订阅者模式 一条消息发布时,所有订阅者都会收到,Topic有2种模式,Nondurable subscription(非持久化订阅)和durable subscription(持久化订阅-每个持久化订阅者都相当于一个持久话的queue的客户端),默认是非持久化订阅。 持久化:消息产生后,会保存到文件或数据库中,直到消息被消费,Queue的持久化消息。 非持久化:消息不会保存,当没有消费者消费时,就会被丢弃 3. 代码 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter<

kafka命令总结

我怕爱的太早我们不能终老 提交于 2019-11-29 02:15:31
kafka知识总结 //切换到安装路径命令 cd /home/kafka/kafka_2.11-0.10.2.1/bin //启动kafka服务,三台主机分别输入此指令: ./kafka-server-start.sh $KAFKA_HOME/config/server.properties & //以后台的方式启动 nohup ./kafka-server-start.sh $KAFKA_HOME/config/server.properties & //查看topic名 ./kafka-topics.sh --list --zookeeper 10.101.22.41:2181 ./kafka-topics.sh --list --zookeeper 10.101.22.41:2181,10.101.22.42:2181,10.101.22.43:2181 //查询topic内容 ./kafka-console-consumer.sh --bootstrap-server 10.101.22.41:9092,10.101.22.42:9093,10.101.22.43:9094 --topic oth_cpd_active_realtime_data --from-beginning //查看某个Topic的详情 ./kafka-topics.sh --topic oth

从代码理解 cartographer 1

耗尽温柔 提交于 2019-11-29 01:42:07
之前看了不少的cartographer的从总体上了解cartographer的文章。但是代码是怎么做的,代码怎么写的。我一点都不清楚。 所以这是一次再出发,我自己从代码层面去看cartographer。 在从代码层面上了解cartographer的,有知乎的一个 cartographer源码解读系列 在了解读系列之后,我心里还不是很清楚。所以我自己开始自己的解读过程的记录。 我自己了解cartographer的一个随笔过程。 在我写ROS程序的时候,我自己就是一个过程思维。每一步都经历了什么过程。 所以我在这一系列里面,尝试着解读这些问题。 首先是数据从哪里进去。 如果有错误,希望大家指出。谢谢 官方流程图: 官方流程图还是很清晰明了地讲解了数据的输入有哪几个种类。 在官方流程图的最左边,首先说明了输入的数据雷达的范围数据,IMU数据以及Odom数据。 下面,我们就来了解清楚这些数据进行输入时,代码具体如何执行,以及Google的工程师,是如何设计了这些类。 这些都是我很好奇的地方。 第一部分:Cartographer订阅的各种话题的流程是什么。 在Cartographer的流程图里面,分别有三种数据,雷达数据,odom数据以及IMU数据。 这三个数据分别是雷达驱动所发出的,以及底盘驱动所发出来的Odom数据以及IMU数据。 Cartographer分别订阅了他们所发出来的话题。