03 2018 档案

摘要:scrapy-redis插件:实现分布式爬虫。 scheduler - 调度器 dupefilter - URL去重规则(被调度器使用) pipeline - 数据持久化 pip3 install scrapy-redis 一,url去重 二,调度器 三,数据持久化 四,起始url 五,eg # D 阅读全文
posted @ 2018-03-30 21:38 老王的农场 阅读(459) 评论(0) 推荐(0)
摘要:发布: import redis pool = redis.ConnectionPool(host='127.0.0.1', port=6379) conn = redis.Redis(connection_pool=pool) conn.publish('fm104.5','sb') 订阅1 im 阅读全文
posted @ 2018-03-30 21:00 老王的农场 阅读(1223) 评论(0) 推荐(0)
摘要:API使用 redis-py 的API的使用可以分类为: 连接方式 连接池 操作 String 操作 Hash 操作 List 操作 Set 操作 Sort Set 操作 管道 发布订阅 String 操作 Hash 操作 List 操作 Set 操作 Sort Set 操作 一、操作模式 redi 阅读全文
posted @ 2018-03-30 12:33 老王的农场 阅读(148) 评论(0) 推荐(0)
摘要:1,安装,brew install redis /usr/local/Cellar/redis/4.0.9 2,创建链接并添加到开机启动 cp /usr/local/Cellar/redis/4.0.9/homebrew.mxcl.redis.plist ~/Library/LaunchAgents 阅读全文
posted @ 2018-03-30 10:08 老王的农场 阅读(290) 评论(0) 推荐(0)
摘要:django第三方缓存插件 数据类型: k -->"" k-->[1,2,3,2] k-->{'k1':'v1','k2':'v2'} k-->{11,222} 集合。不重复。 k-->{11(9),222(6)} 有序集合,不重复,可排序 1. 使用Redis有哪些好处? (1) 速度快,因为数据 阅读全文
posted @ 2018-03-30 09:22 老王的农场 阅读(110) 评论(0) 推荐(0)
摘要:django 进来,执行parse,request 出去,执行parse,response 一个中间件写parse,request。一个中间件写parse,response方法。 一,memcache缓存,Django中提供了6种缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(pyt 阅读全文
posted @ 2018-03-29 22:13 老王的农场 阅读(245) 评论(0) 推荐(0)
摘要:1,add 添加一条键值对,如果已经存在的 key,重复执行add操作异常 2,replace 修改某个key的值,如果key不存在,则异常 3, set 和 set_multi set 设置一个键值对,如果key不存在,则创建,如果key存在,则修改set_multi 设置多个键值对,如果key不 阅读全文
posted @ 2018-03-29 12:05 老王的农场 阅读(147) 评论(0) 推荐(0)
摘要:from twisted.web.client import getPage from twisted.internet import reactor from twisted.internet import defer url_list = ['http://www.bing.com', 'htt 阅读全文
posted @ 2018-03-26 13:56 老王的农场 阅读(218) 评论(0) 推荐(0)
摘要:Https访问时有两种情况: 1. 要爬取网站使用的可信任证书(默认支持) DOWNLOADER_HTTPCLIENTFACTORY = "scrapy.core.downloader.webclient.ScrapyHTTPClientFactory" DOWNLOADER_CLIENTCONTEXTFACTORY = "scrapy.core.dow... 阅读全文
posted @ 2018-03-26 10:11 老王的农场 阅读(393) 评论(0) 推荐(0)
摘要:代理,需要在环境变量中设置 from scrapy.contrib.downloadermiddleware.httpproxy import HttpProxyMiddleware 方式一:使用默认 os.environ { http_proxy:http://root:wowowo@192.168.11.11:... 阅读全文
posted @ 2018-03-26 10:00 老王的农场 阅读(844) 评论(0) 推荐(0)
摘要:监测爬虫信息 查看操作命令: http://doc.scrapy.org/en/latest/topics/telnetconsole.html 阅读全文
posted @ 2018-03-25 18:58 老王的农场 阅读(339) 评论(0) 推荐(0)
摘要:##settings设置 阅读全文
posted @ 2018-03-25 13:11 老王的农场 阅读(134) 评论(0) 推荐(0)
摘要:class SpiderMiddleware(object): def process_spider_input(self,response, spider): """ 下载完成,执行,然后交给parse处理 :param response: :param spider: :return: ... 阅读全文
posted @ 2018-03-25 13:11 老王的农场 阅读(238) 评论(0) 推荐(0)
摘要:在spaider同级,创建任意目录commands 在其中创建crawlall文件 from scrapy.commands import ScrapyCommand from scrapy.utils.project import get_project_settings class Comman 阅读全文
posted @ 2018-03-24 16:20 老王的农场 阅读(142) 评论(0) 推荐(0)
摘要:利用信号在指定的位置注册指定操作 from scrapy import signals class MyExtension(object): def __init__(self, value): self.value = value @classmethod def from_crawler(cls 阅读全文
posted @ 2018-03-24 15:48 老王的农场 阅读(200) 评论(0) 推荐(0)
摘要:自定义去重 -类。自定义一个类。DUPEFILTER_CLASS = 'sp2.rep.RepeatUrl' -配置文件中指定 :scrapy.dupefilter.RFPDupeFilter scrapy默认使用 scrapy.dupefilter.RFPDupeFilter 进行去重,相关配置有 阅读全文
posted @ 2018-03-23 18:50 老王的农场 阅读(2384) 评论(0) 推荐(0)
摘要:# -*- coding: utf-8 -*- import scrapy from scrapy.http import Request from scrapy.core.engine import ExecutionEngine class ChoutiSpider(scrapy.Spider): name = 'baidu' allowed_domains = ['bai... 阅读全文
posted @ 2018-03-22 16:43 老王的农场 阅读(172) 评论(0) 推荐(0)
摘要:规则 from scrapy.http import Request for url in response: yield Request(url=url,callback=self.parse) # yield Request,放到调度器# yield ,放到pipeline def parse(self,response): #获取指定数据,进行持久化 ... 阅读全文
posted @ 2018-03-22 13:10 老王的农场 阅读(118) 评论(0) 推荐(0)
摘要:text # 输出字符串类型 body # 输出字节类型 import sys,os sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') gb18030 兼容性更好。中文,日文,韩文 推荐以下方式 常用方式 #当前下面去 阅读全文
posted @ 2018-03-21 19:07 老王的农场 阅读(153) 评论(0) 推荐(0)
摘要:scrapy框架,用来数据挖掘,信息处理,存储历史数据、监测和自动化测试等操作。 Scrapy 使用了 Twisted异步网络库来处理网络通讯。 Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler)用来接受引擎发过来 阅读全文
posted @ 2018-03-21 13:43 老王的农场 阅读(150) 评论(0) 推荐(0)
摘要:io多路复用:用来检测多个socket对象是否有变化 总结 1.client.setblocking(false) 2,select.select() #检测:连接成功,数据回来 阅读全文
posted @ 2018-03-20 18:45 老王的农场 阅读(271) 评论(0) 推荐(0)
摘要:【异步】:回调 非组塞,完成后某个任务后,自动执行一个这个函数,回调告知结果。 【非阻塞】:不等,某一个socket,先链接,发送数据,再接收数据一气呵成,不等。 阻塞:client = socket();client.connet(ip,端口) 非阻塞:client = socket();clie 阅读全文
posted @ 2018-03-20 12:20 老王的农场 阅读(242) 评论(0) 推荐(0)
摘要:总结 a,分析http请求 1,请求方式 2,url 3,2种本质格式:form data(request.post()), request payload(json数据类型) 4,请求头: --user-agent:当前用户使用的设备(request.get(www.zhihu)) --refer 阅读全文
posted @ 2018-03-20 10:07 老王的农场 阅读(518) 评论(0) 推荐(0)
摘要:调用关系 get请求 post请求 其他请求 ###重定向 阅读全文
posted @ 2018-03-17 15:30 老王的农场 阅读(524) 评论(0) 推荐(0)
摘要:终端命令 sudo lsof -i :8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Python 11256 haha 3u IPv4 0xd74399cf9 0t0 TCP localhost:http-alt (LISTEN) 然 阅读全文
posted @ 2018-03-13 12:22 老王的农场 阅读(875) 评论(0) 推荐(0)
摘要:orm框架 作用: 1,提供简单的规则 2,自动转换成sql语句 dbfirst :手动创建表,和数据库--orm框架--自动生成类 codefirst:手动创建类,和数据库--orm框架--自动生成表 功能: 创建数据库表: 1,连接数据库表(pymasql,mysqldb。。。) 2,类转换成s 阅读全文
posted @ 2018-03-10 11:14 老王的农场 阅读(178) 评论(0) 推荐(0)
摘要:c/s架构 server端: 1,力求一只提供服务 2,要绑定一个唯一的地址,让客户端能够明确找到。(ip+port) 基于网络类型的套接字家族 现在用的主要是基于网络的套接字 套接字,我们用AF_INET。主流ipv4,也有ipv6 阅读全文
posted @ 2018-03-01 19:32 老王的农场 阅读(117) 评论(0) 推荐(0)