- 博客(174)
- 收藏
- 关注
转载 Scrapy源码剖析之自定义low版框架
isinstance(result,types.GeneratorType) 判断是否生成器队列为空会等,block=False 不等会报错reactor.callLater(0,self.next_request)from twisted.internet import reactor # 事件循环(终止条件,所有的socket都已经移除)from tw...
2019-08-31 18:33:00 71
转载 Scrapy源码剖析前戏之Twisted使用
from twisted.internet import reactor # 事件循环(终止条件,所有的socket都已经移除)from twisted.web.client import getPage # socket对象(如果下载完成,自动从时间循环中移除...)from twisted.internet import defer # ...
2019-08-31 18:17:00 93
转载 Scrapy源码流程简述
crawl与twisted原理一样from twisted.internet import deferfrom twisted.web.client import getPagefrom twisted.internet import reactordef download(*args,**kwargs): print(args,kwargs)...
2019-08-31 18:06:00 59
转载 Scrapy配置自定义scrapy命令
写的类要在settings.py中添加配置注册scrapy --help在spiders同级创建任意目录,如:commands在其中创建 crawlall.py 文件 (此处文件名就是自定义的命令)在settings.py 中添加配置 COMMANDS_MODULE = '项目名称.目录名称'在项目目录执行命令:scrapy crawlall...
2019-08-31 17:52:00 213
转载 Scrapy配置之爬虫中间件
# -*- coding: utf-8 -*-# Define here the models for your spider middleware## See documentation in:# http://doc.scrapy.org/en/latest/topics/spider-middleware.htmlfrom scrapy impo...
2019-08-31 17:35:00 119
转载 Scrapy配置之下载中间件
1、process_request 下载完成,后续无需下载2、process_response 比如有return response# -*- coding: utf-8 -*-# Define here the models for your spider middleware## See documentation in:# http://do...
2019-08-31 17:10:00 106
转载 Scrapy之默认代理以及扩展代理
random.choices(m) 随机选择settings:DOWNLOADER_MIDDLEWARES={'step8_king.middlewares.xxx':500,} 越小越优先转载于:https://www.cnblogs.com/jintian/p/11439620.html
2019-08-31 16:54:00 95
转载 Scrapy配置之自动限速以及缓存
缓存:内存或本地文件,更近更快的地方拿到HTTPCACHE_ENABLED=True 是否启用缓存策略转载于:https://www.cnblogs.com/jintian/p/11439593.html
2019-08-31 16:49:00 581
转载 Scrapy框架扩展
在指定信号上注册操作from scrapy import signalsclass MyExtend: def __init__(self,crawler): self.crawler = crawler # 钩子上挂障碍物 # 在指定信号上注册操作 crawler.signals...
2019-08-31 11:51:00 113
转载 pipeline补充
yield item 会执行 process_itemdef process_item return item 交给下一个pipeline raise DropItem 丢弃掉,不给下一个pipelinecrawler.settings crawler封装了settings配置文件必须大写# -*- coding: utf-8 -...
2019-08-31 11:37:00 62
转载 去除重复URL
//a[contains(@href,"link")] contains相当于in(或的关系)class RepeatFillter(object): 判断URL重复settings:PUPEFILTER_CLASS:"day96.duplication.RepeatFilter"通过from_settings方法创建对象class RepeatFilter(...
2019-08-31 11:20:00 275
转载 基于pipeline实现标题和URL持久化
# -*- coding: utf-8 -*-# Define your item pipelines here## Don't forget to add your pipeline to the ITEM_PIPELINES setting# See: http://doc.scrapy.org/en/latest/topics/item-pipeline...
2019-08-31 11:00:00 113
转载 2 Main Layout Conventions of Matrix Calculus
考虑 \(x\), \(y\) 分别是 \(n\), \(m\) 维列向量, \(A\) 是 \(m\times n\) 矩阵, \(z\) 是标量.Numerator Layout想象分子不变, 分母转置.Vector by vector 符合直观. Jacobian.\[\frac{\partial y}{\partial x} = \begin{pmatrix} \f...
2019-08-30 15:53:00 168
转载 Array : 数组的常用方法
数组常用方法对象通用方法1.toLocalString() 数组中的每个元素都会调用toLocalString(),然后以逗号隔开, 拼接为字符串;2.toString() 数组中的每个元素都会调用toString(),然后以逗号隔开, 拼接为字符串;3.valueOf() 返回原数组=======================================...
2019-08-29 09:00:00 101
转载 抽屉作业:初识scrapy并获取新闻标题
import iosys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gbl8030')在window运行出现编码问题加上以上代码extract() 对象转换为字符串extract_first() 列表的第一个元素// 表示子孙中 .// 当前对象的子孙中 / 儿子/div 儿子中的div标签 ...
2019-08-27 23:47:00 80
转载 scrapy爬虫介绍
scrapy crawl chouti __nolog 执行Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬...
2019-08-27 23:37:00 62
转载 SQLServer分页查询方法整理以及批量插入操作SqlBulkCopy
分页查询通用方法:sqlserver 2005 +ROW_NUMBER() OVER()方式:SELECT TOP 50 * FROM (SELECT *,ROW_NUMBER()OVER(ORDER BY ID) as rowID FROM TripDetail)as b where b.rowID >1010001 ;TOPNOT IN方式 :...
2019-08-27 16:15:00 131
转载 JavaScript之事件循环,宏任务与微任务
事件循环 Event Loop程序中设置两个线程:一个负责程序本身的运行,称为"主线程";另一个负责主线程与其他进程(主要是各种I/O操作)的通信,被称为"Event Loop线程"(可以译为"消息线程")。所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才...
2019-08-26 20:51:00 78
转载 Android apk逆向:反编译,回编译,签名,打包。
Android apk逆向:反编译,回编译,签名,打包流程。第一步: apk 反编译。1) 打开命令行窗口,输入java -version, 检测当前java版本,若版本较低, 则下载JAVA SE, 需要添加环境变量。2) 需要下载apktool, 需要添加环境变量,然后再命令行窗口输入apktool查看是否安装成功。3) 在C:\Users\XXX\AppData\L...
2019-08-26 17:31:00 172
转载 本周总结(19年暑假)—— Part7
日期:2019.8.25博客期:113星期日转载于:https://www.cnblogs.com/onepersonwholive/p/11509428.html
2019-08-25 23:11:00 44
转载 自定义异步IO模块开发
响应头和响应体是用两个换行分割的sk.setblock(False) 不阻塞host是IP 比如www.baidu.com也是host,IP地址也是r,w,e=select.select()w是连接成功的socket对象r是有数据返回的socket对象IO多路复用:r,w,e=while 监听多个socket对象异步IO:非阻塞的socket+IO多路复用...
2019-08-24 23:45:00 79
转载 自定义异步IO模块前戏
1、setblocking(0):无数据(连接无响应;数据未返回)就报错2、IO多路复用转载于:https://www.cnblogs.com/jintian/p/11406564.html
2019-08-24 23:31:00 65
转载 异步IO模块的使用
gevent:mokey.path_all (找到所有socket,进行异步IO)gevent+requests=》grequestsTwisted: reactor.run() 死循环Tornado=》gevent > Twisted > Tornado > asynciowww.cnblogs.com/wupeiqi/articles/6229...
2019-08-24 23:28:00 101
转载 多进程实现并发请求
协程:在一个线程内指定切换协程+异步IOaiohttp asyncio 模块封装http数据包 异步IO"""可以实现并发但是,请求发送出去后和返回之前,中间时期进程空闲编写方式: - 直接返回处理 - 通过回调函数处理"""########### 编写方式一 ###########"""from...
2019-08-24 23:14:00 408
转载 多线程实现并发请求
多线程:不应该开太多,线程之间切换会消耗编写方式 -直接返回处理 -通过回调函数处理 v.add_done_callback(done)线程是CPU的最小工作单元,线程共享工作资源"""可以实现并发但是,请求发送出去后和返回之前,中间时期线程空闲编写方式: - 直接返回处理 - 通过回调函数处理"""######...
2019-08-24 23:07:00 959
转载 Web微信之获取用户消息
网站爬数据:1、url分析 请求方式 get / post 2、提交不能成功+cookies或headers转载于:https://www.cnblogs.com/jintian/p/11406473.html
2019-08-24 22:59:00 167
转载 Web微信之发送微信消息
requests.post(url=url,json=post_dict)requests.post(url=url,data=json.dumps(post_dict),headers={'content_Type':'application/json;charset=utf-8'})ensure_ascii=False 中文不会转化unicode编码.strip() 去...
2019-08-24 22:55:00 358
转载 Web微信之用户信息初始化信息并展示
JS中:location.href=' ' 跳转转载于:https://www.cnblogs.com/jintian/p/11406438.html
2019-08-24 22:49:00 126
转载 Nacos配置中心-源码解析
一:关于Nacos的思考 首先思考一个问题,Nacos作为配置中心,Nacos 客户端是怎么实时获取到 Nacos 服务端的最新数据? 其实客户端和服务端之间的数据交互,无外乎两种情况: 1.服务端推数据给客户端 2.客户端从服务端拉数据 zk作为配置中心,基于zk的watcher机制,配置发生变化通知客户端,Nacos也是同样...
2019-08-24 14:58:00 901
转载 Web微信之用户扫码
v=re.findall(' uuid="(.*)");',response.text)v是(.*)分组的内容,一个列表from django.shortcuts import render,HttpResponseimport requestsimport timeimport reimport jsonCTIME = NoneQCODE...
2019-08-24 13:24:00 149
转载 《Java 8 in Action》Chapter 3:Lambda表达式
1. Lambda简介可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。匿名——我们说匿名,是因为它不像普通的方法那样有一个明确的名称:写得少而想得多!函数——我们说它是函数,是因为Lambda函数不像方法那样属于某个特定的类。但和方法一样,Lambda有参数列表、函数主体、返回类型,还可能...
2019-08-24 10:28:19 69
转载 示例:自动登录知乎
import requestsfrom bs4 import BeautifulSoup# 1. 访问登陆页面,获取 authenticity_tokeni1 = requests.get('https://github.com/login')soup1 = BeautifulSoup(i1.text, features='html.parser')tag =...
2019-08-23 23:51:00 188
转载 BeautifulSoup模块详细介绍
安装lxml,引擎(解析器)soup=BeautifulSoup(html_doc,features="lxml")tag=soup.select('#link2') 选择器的方式tag.name 获取标签名children:儿子 标签和内容是不一样的类型descendants:后代clear:清空保留标签名 decompose:删除,不保留标签名ext...
2019-08-23 23:12:00 76
转载 requests模块详细介绍
requests.request 参数:method:提交方式 url:提交地址 params:URL中传递的参数,GET根据请求头决定是否要将request.body转化到request.post里字典嵌套字典用json传递请求头:Referer上一次访问的网站,如果脚本访问不了加这个 uesr-Agent:...
2019-08-22 23:34:00 73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人