07 2020 档案

摘要:1、Docker介绍 官方中文文档 http://www.dockerinfo.net/document 安装docker sudo apt install docker.io 使用docker 方法一 以管理员权限,运行docker命令 方法二 sudo groupadd docker # 添加d 阅读全文
posted @ 2020-07-30 01:56 Norni 阅读(106) 评论(0) 推荐(0)
摘要:搜狗微信爬虫项目 一、需求分析 1、概述 1.1 项目简介 基于搜狗微信搜索的微信公众号爬虫接口 ###2、需求分析 获取公众号信息 通过api,输入特定公众号,能查找相关信息 相关信息 { 'public_name':str # 公众号名称 'wechat_id':str # 微信id "publ 阅读全文
posted @ 2020-07-29 11:00 Norni 阅读(1108) 评论(0) 推荐(0)
摘要:scrapy初级 起始url parse 选择器 pipeline requests POST cookie Headers scrapy进阶 去重 调度器(队列) 中间件 扩展(基于信号) https 代理(基于中间件) scrapy高级 miniscrapy模拟scrapy流程 阅读全文
posted @ 2020-07-28 16:21 Norni 阅读(184) 评论(0) 推荐(0)
摘要:基本使用 from twisted.web.client import getPage, defer from twisted.internet import reactor # 基本使用 def all_done(contents): # 所有爬虫执行完毕后,循环终止 reactor.stop() 阅读全文
posted @ 2020-07-28 16:17 Norni 阅读(141) 评论(0) 推荐(0)
摘要:创建命令目录及文件 settings.py中定义命令 代码 from scrapy.commands import ScrapyCommand​​class Command(ScrapyCommand): requires_project = True​ def syntax(self): retu 阅读全文
posted @ 2020-07-27 21:56 Norni 阅读(195) 评论(0) 推荐(0)
摘要:在settings.py中,虽然没有明确写出来去重方式,但是默认为以下内容 DUPEFILTER_CLASS = 'scrapy.dupefilter.RFPDupeFilter' DUPEFILTER_CLASS = False JOBDIR = "保存范文记录的日志路径,如:/root/" # 阅读全文
posted @ 2020-07-25 16:14 Norni 阅读(378) 评论(0) 推荐(0)
摘要:import scrapyclass BaiduSpider(scrapy.Spider): name = 'baidu' allowed_domains = ['www.baidu.com'] start_urls = ['http://www.baidu.com/'] def parse(sel 阅读全文
posted @ 2020-07-25 15:09 Norni 阅读(1188) 评论(0) 推荐(0)
摘要:总结: 与实现twisted或tornado的原理类似,通过理解这个代码,能实现其他异步框架的理解 参考: IO模型:https://www.cnblogs.com/nuochengze/p/13372747.html socket在爬虫中的表层应用:https://www.cnblogs.com/ 阅读全文
posted @ 2020-07-25 10:36 Norni 阅读(132) 评论(0) 推荐(0)
摘要:socketserver能实现socket服务器端的多并发 import socketserver class MyRequestHandle(socketserver.BaseRequestHandler): def handle(self): # self.request,如果是tcp协议,那么 阅读全文
posted @ 2020-07-24 17:03 Norni 阅读(109) 评论(0) 推荐(0)
摘要:1、GIL全局解释器锁 https://www.cnblogs.com/nuochengze/p/12664602.html 1、GIL是CPython解释器的特点, 在其它解释器中不存在 2、GIL本质是一把互斥锁,但它是解释器级别的锁 3、它的存在是因为CPython解释器内存管理不是线程安全的 阅读全文
posted @ 2020-07-24 16:57 Norni 阅读(138) 评论(0) 推荐(0)
摘要:1、IO模型简介 """ 针对网络IO """ """ * blocking IO 阻塞IO * nonblocking IO 非阻塞IO * IO multiplexing IO多路复用 * signal driven IO 信号驱动IO * asynchronous IO 异步IO """ 2、 阅读全文
posted @ 2020-07-24 16:41 Norni 阅读(203) 评论(0) 推荐(0)
摘要:目标url:https://movie.douban.com/top250?start=0&filter= 要点:socket的数据传输,ssl的封装,Queue, Pool,Thread 数据展示: 代码: import socket import ssl from lxml import etr 阅读全文
posted @ 2020-07-20 15:54 Norni 阅读(339) 评论(0) 推荐(0)
摘要:粘包问题 tcp是流式协议,数据像水流一样粘在一起,没有任何边界区分 收数据没收干净 粘包解决思路 每次都收干净,不要任何残留 粘包解决办法 利用好struct模块 服务端 通过struct这个模块,构造固定长度的数据包头信息,接着才发送数据,即自定义的协议 代码 import socketimpo 阅读全文
posted @ 2020-07-19 23:50 Norni 阅读(208) 评论(0) 推荐(0)
摘要:单例:用于使用同一份实例(对象) 单例模式的实现: 1、方案一: class Foo: def __init__(self, name, age): self.name = name self.age = age def show(self): print(self.name, self.age) 阅读全文
posted @ 2020-07-19 21:37 Norni 阅读(112) 评论(0) 推荐(0)
摘要:千千音乐项目 github:https://github.com/Norni/spider_project/tree/master/qianqianyinyue 1、千千音乐概述 1.1 目的 1.2 开发环境 2、项目设计 2.1 流程设计 2.2 项目流程概述 3、模型设计 3.1 歌手模型 3 阅读全文
posted @ 2020-07-16 14:52 Norni 阅读(440) 评论(0) 推荐(0)
摘要:浅拷贝 实质是对变量的引用 浅拷贝,只copy第一层结构 说明: 第一层结构如果有对其他对象的引用,如列表列表a = [[1,2],3,4]对象,那么第一层列表对象的元素a[0]([1,2]对象),其引用的其实是指向第二层对象的内存地址 如果通过浅拷贝b = a.copy(),那相当于对象b为[ID 阅读全文
posted @ 2020-07-11 23:36 Norni 阅读(114) 评论(0) 推荐(0)
摘要:装饰器 变量作用域 局部作用域 全局作用域 高阶函数 函数名可以作为参数输入 函数名可以作为返回值 闭包 示例代码 def outer(): x = 10 def inner(): print(x) return inner 定义 如果在一个内部函数里,对在外部作用域(不在大全局作用域)的变量进行引 阅读全文
posted @ 2020-07-11 23:34 Norni 阅读(140) 评论(0) 推荐(0)
摘要:1、将XMindCrack文件移动到安装路径根目录 下载XMindCrack 链接:https://pan.baidu.com/s/1mt5osUak7CgLEABTgbe_xQ 提取码:fonw 右键单击图标,进入安装目录 将下载的文件拖拽至根目录 2、修改XMind.ini文件 找到XMind. 阅读全文
posted @ 2020-07-10 11:42 Norni 阅读(680) 评论(0) 推荐(0)
摘要:github_addr:https://github.com/Norni/spider_project/tree/master/jingdong_spider 1、京东全网爬虫需求 1.1 目标 明确要抓取的信息 1.2 目标分解 1.2.1 抓取首页的分类信息 抓取数据:各级分类的名称和URL 大 阅读全文
posted @ 2020-07-08 06:35 Norni 阅读(1603) 评论(1) 推荐(0)
摘要:代理池项目 github_addr:https://github.com/Norni/proxy_pool 1、代理池的概述 1.1什么是代理池 代理池是由代理IP组成的池子,它可以提供多个稳定可用的代理IP 1.2为什么要实现代理池 应付ip反爬 免费代理是不稳定的,提高使用效率 部分收费代理也不 阅读全文
posted @ 2020-07-05 12:53 Norni 阅读(344) 评论(0) 推荐(0)