百度人脸识别–人脸对比
主要是调用百度的接口,调用方法如下:
- HTTP方法:POST
- 请求URL :https://aip.baidubce.com/rest/2.0/face/v3/match
URL参数:access_token,通过API Key和Secret Key获取的access_token,参考“Access Token获取”
Header:Content-Type:application/json
- 请求参数:
`长路漫漫,唯剑作伴`
主要是调用百度的接口,调用方法如下:
URL参数:access_token,通过API Key和Secret Key获取的access_token,参考“Access Token获取”
Header:Content-Type:application/json
concurrent.futures模块,它提供了ThreadPoolExecutor和ProcessPoolExecutor两个类,实现了对threading和multiprocessing的进一步抽象,对编写线程池/进程池提供了直接的支持。
问题:有10万条url需要爬取,如何以比较简单的方式实现多进程/多线程爬取?
python的任务调度模块,apscheduler,它主要包含了四种组件triggers(触发器)、job stores(任务存储器)、executors(执行器)、schedulers(定时调度器)。
安装
pip install apscheduler
定时器种类
BlockingScheduler:当调度器是进程中唯一运行的程序时使用
BackgroundScheduler:在不使用下面任何框架时使用,并希望调度器在应用程序的后台运行。
AsyncIOScheduler:你使用的应用程序中必须有asyncio模块
GeventScheduler:在你的应用程序中必须有gevent模块
TornadoScheduler:你的应用程序是Tornado框架可以使用
TwistedScheduler:你的应用程序是Twisted框架可以使用
QtScheduler: 在QT框架中使用
触发器种类
date:一次性任务,即只执行一次任务
interval:循环任务,即按照时间间隔执行任务
cron:定时任务,即在每个时间段执行任务
数据导出
MongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
命令:
mongoexport -d dbname -c collectionname -o file --type json/csv -f field
参数说明:
-d :数据库名
-c :collection名
-o :输出的文件名
–type : 输出的格式,默认为json
-f :输出的字段,如果-type为csv,则需要加上-f “字段名”
前段时间,对ELK做了一定的研习,中间踩了许多坑,全都是自己一个人一点点查阅资料解决的,在此做个记录,对logstash方面的记录比较多,其他关于elasticserarch或者kibana以后有了更深入的学习后,再来扩展。
logstash 如何安装详细参考官网。在centos系统上,一般logstash配置文件目录为:/etc/logstash,
执行文件目录为:/usr/share/logstash,logstash运行的日志目录:/var/log/messages;
logstash的运行依赖JVM,所以需要先安装jdk,安装好jdk后需要配置环境变量;
在测试阶段,我们使用logstash命令启动程序,只要环境变量配置正确一般是没什么问题的,但是应用阶段我们一般是以服务形式来启动程序,如systemctl start logstash
,这时可能会遇到报错的情况,找不到JAVA_HOME,使用以下命令可以解决:ln -s /usr/local/jdk1.8.0_181/bin/java /bin/java
,意为:为/bin/java 建立一个软连接,需要的源文件在/usr/local/jdk1.8.0_181/bin/java 中,因为以服务方式启动logstash时,默认去/bin/java路径中寻找java源文件(JAVA_HOME供java命令使用,系统并不关心)。
StreamHandler:流handler——包含在logging模块中的三个handler之一,主要用来屏幕打印日志。
FileHandler:logging模块自带的三个handler之一,继承自StreamHandler。将日志信息输出到磁盘文件上。
构造函数:
class logging.FileHandler(filename, mode='a', encoding=None, delay=False)
模式默认为append,delay为true时,文件直到emit方法被执行才会打开。默认情况下,日志文件可以无限增大。
这篇文章的目的不是为了一步步教新手如何写python爬虫,只是记录自己在学习python爬虫过程中的使用的技术点和遇到的问题,做一个技术沉淀。
Requests库,主要用来做HTTP请求,支持通过参数添加headers、cookie、proxy等,并且支持HTTP请求的许多类型如:PUT,DELETE,HEAD 以及 OPTIONS 等。简单易上手,功能也很强大。当然也可以使用python自带的urllib(python3)或urllib2(python2)。
BeautifulSoup库,主要用来做解析,可以从HTML或XML中提取数据,通过将HTML或XML转变为BeautifulSoup对象,并指定相应的解析器(html.parser,lxml,xml,html5lib),就可以调用BeautifulSoup内置的各种方法,进而从HTML或XML中获取我们想要提取的数据。
继上一篇博客python正则表达式后,此篇文章主要是重点记录”(?=)”(前向肯定界定符)、”(?!)”(前向否定界定符)、”(?<=)”(后项肯定界定符)以及”(?<!)”(后项否定界定符)的用法。