host

爬虫--Scrapy之Downloader Middleware

人盡茶涼 提交于 2019-12-20 01:18:51
下载器中间件(Downloader Middleware) 下载器中间件是介于Scrapy的request/response处理的钩子框架。 是用于全局修改Scrapy request和response的一个轻量、底层的系统。 激活下载器中间件 要激活下载器中间件组件,将其加入到 DOWNLOADER_MIDDLEWARES 设置中。 该设置是一个字典(dict),键为中间件类的路径,值为其中间件的顺序(order)。 这里是一个例子: DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.CustomDownloaderMiddleware': 543, } DOWNLOADER_MIDDLEWARES 设置会与Scrapy定义的 DOWNLOADER_MIDDLEWARES_BASE 设置合并(但不是覆盖), 而后根据顺序(order)进行排序,最后得到启用中间件的有序列表: 第一个中间件是最靠近引擎的,最后一个中间件是最靠近下载器的。 关于如何分配中间件的顺序请查看 DOWNLOADER_MIDDLEWARES_BASE 设置,而后根据您想要放置中间件的位置选择一个值。 由于每个中间件执行不同的动作,您的中间件可能会依赖于之前(或者之后)执行的中间件,因此顺序是很重要的。 如果您想禁止内置的(在 DOWNLOADER

pymysql模块的使用

旧城冷巷雨未停 提交于 2019-12-20 00:54:35
本节重点: pymysql的下载和使用 execute()之sql注入 增、删、改:conn.commit() 查:fetchone、fetchmany、fetchall 一、pymysql的下载和使用   之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装。 (1)pymysql模块的下载 pip3 install pymysql (2)pymysql的使用 数据库和数据都已存在 # 实现:使用Python实现用户登录,如果用户存在则登录成功(假设该用户已在数据库中) import pymysql user = input('请输入用户名:') pwd = input('请输入密码:') # 1.连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='db8', charset='utf8') # 2.创建游标 cursor = conn.cursor() #注意%s需要加引号 sql = "select * from userinfo where username='%s' and pwd='%s'" %(user,

网络存储服务ip-san搭建

久未见 提交于 2019-12-20 00:40:24
网络存储服务ip-san搭建 网络存储服务ip-san搭建 一.简介 SAN (存储区域网络 storage area network and SAN protocols ,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。 FC-SAN通过光纤通道协议转发scsi协议;IP-SAN通过TCP协议转发scsi协议,也就是IP 地址。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC、日立等。 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。 iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近

TCPDump工具

ε祈祈猫儿з 提交于 2019-12-20 00:32:01
主要功能:捕获和分析数据包。 TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not等逻辑语句来帮助你去掉无用的信息。 命令格式:tcpdump [ 选项 ] [ -c 数量 ] [ -i 网络接口 ] [ -w 文件名 ] [ 表达式 ] 常用选项: -l:使标准输出变为缓冲行形式; -c:抓包次数; -nn:直接以 IP 及 Port Number 显示,而非主机名与服务名称; -s :<数据包大小> 设置每个数据包的大小; -i:指定监听的网络接口; -r:从指定的文件中读取包; -w:输出信息保存到指定文件; -a:将网络地址和广播地址转变成名字; -d:将匹配信息包的代码以人们能够理解的汇编格式给出; -e:在输出行打印出数据链路层的头部信息; -f:将外部的Internet地址以数字的形式打印出来; -t:在输出的每一行不打印时间戳; -v :输出稍微详细的报文信息;加一个v更详细。 四种表达式:过滤报文条件 1、关于类型的关键字,主要包括host,net,port, 例如 host210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host

nginx代理

时光总嘲笑我的痴心妄想 提交于 2019-12-19 22:15:25
示意图 # https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/pic.md Nginx正向代理 # https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/z_proxy.md Nginx反向代理 # https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/f_proxy.md #缓冲和缓存 https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/bu_ca.md Nginx正向代理配置 Nginx正向代理使用场景并不多见。 需求场景1: 如果在机房中,只有一台机器可以联网,其他机器只有内网,内网的机器想用使用yum安装软件包,在能能联网的机器上配置一个正向代理即可。 Nginx正向代理配置文件 server { listen 80 default_server; resolver 119.29.29.29; location / { proxy_pass http://$host$request_uri ; } } Nginx正向代理配置执行说明 resolver 语法:resolver address;

Android bulkTransfer return -1 when read data but there is really some data in the buffer

匆匆过客 提交于 2019-12-19 17:34:11
问题 I write a app in galaxy tab p7300 to communicate with a key (scsi device) via otg cable. I can read data first time with bulkTransfer(),but can not the next time . Then I use Ellisys Visual USB to sniff data and I find that the key really return 13 bytes data. But in the android client (GT-P7300) I receive -1 that bulkTransfer return. I have run out my idea. Thanks for anybody that can give me a piece of clues. 回答1: When using the USB Bulk transfer, here is a list of things to check when

爬虫高性能 asyncio库 twisted库 tornado库

佐手、 提交于 2019-12-19 13:20:30
一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低。 需要强调的是:对于单线程下串行N个任务,并不完全等同于低效,如果这N个任务都是纯计算的任务,那么该线程对cpu的利用率仍然会很高,之所以单线程下串行多个爬虫任务低效,是因为爬虫任务是明显的IO密集型程序。 关于IO模型详见链接:http://www.cnblogs.com/linhaifeng/articles/7454717.html    二 同步、异步、回调机制 1、同步调用:即提交一个任务后就在原地等待任务结束,等到拿到任务的结果后再继续下一行代码,效率低下 import requests def parse_page(res): print('解析 %s' %(len(res))) def get_page(url): print('下载 %s' %url) response=requests.get(url) if response.status_code == 200: return response.text urls=['https://www.baidu.com/','http://www.sina.com.cn/','https://www.python.org'] for

ansible

喜夏-厌秋 提交于 2019-12-19 09:55:46
安装ansible: AnbleVersion2.4及更高版本可以管理包含Python2.6或更高版本的早期操作系统。 y um方式安装: yum源或rpm包来源: 埃佩尔 以及 Relases.ansible.com . $ sudo yum install ansible 您也可以自己构建一个可以分发和安装的RPM。 $ git clone https://github.com/ansible/ansible.git $ cd ./ansible $ make rpm $ sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm 托管节点的需求 在托管节点上,需要ssh。默认情况下使用sftp。如果sftp不可用,可以在 ansible.cfg切换到scp 。您还需要Python 2(版本2.6或更高版本)或Python 3(版本3.5或更高版本)。 注 如果在远程节点上启用了SELinux,需要安装 libselinux-python。 yum install libselinux-python 默认情况下,Ansible使用位于 /usr/bin/python的解释器 。如果是 python2/3 您可能会看到以下错误: "module_stdout": "/bin/sh: /usr/bin/python: No such file or

Socket网络编程--小小网盘程序(5)

核能气质少年 提交于 2019-12-19 08:59:46
  各位好呀!这一小节应该就是这个小小网盘程序的最后一小节了,这一节将实现最后的三个功能,即列出用户在服务器中的文件列表,还有删除用户在服务器中的文件,最后的可以共享文件给好友。   列出用户在服务器中的文件列表   增加一个结构体 1 struct FileList 2 { 3 int cnt; 4 char list[16][128]; 5 };   为了方便我就假设服务器最多可以存16个单个用户的文件。如果想要支持更多的文件,这里可以增加一个int pages;用于分页作用,我们在服务器中获取文件时,可以根据分页进行发送。这样既方便又能支持多文件。   client.cpp这个客户端文件增加一个函数 1 int file_list(struct Addr addr,struct User user) 2 { 3 struct sockaddr_in servAddr; 4 struct hostent *host; 5 struct Control control; 6 struct FileList filelist; 7 int sockfd; 8 9 host=gethostbyname(addr.host); 10 servAddr.sin_family=AF_INET; 11 servAddr.sin_addr=*((struct in_addr *)host->h

2.LXC和namespace介绍

℡╲_俬逩灬. 提交于 2019-12-19 06:25:11
lxc介绍 LXC又名Linux container,是一种虚拟化的解决方案,这种是内核级的虚拟化。(主流的解决方案Xen ,KVM, LXC) Linux Container容器是一种 内核虚拟化技术 ,可以提供轻量级的虚拟化,以便隔离进程和资源。可以最大效率隔离进程和资源。它可以把传统虚拟技术以及后来的Xen、KVM的VM进程像HOST进程一样运行管理, 所以创建和销毁都非常轻。 如果说LXC着眼点在于提供轻量级的虚拟技术,扎根在虚拟机,那Docker则定位于应用。 概述 LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于: (1)与宿 主机 使用同一个 内核 ,性能损耗小; (2)不需要指令级模拟; (3)不需要即时(Just-in-time)编译; (4)容器可以在CPU核心的本地 运行指令 ,不需要任何专门的解释机制; (5)避免了准虚拟化和系统调用替换中的复杂性; (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。 总结:Linux Container是一种轻量级的虚拟化的手段。