- 博客(4528)
- 收藏
- 关注
转载 Scrapy源码剖析之自定义Scrapy框架
from twisted.internet import reactor # 事件循环(终止条件,所有的socket都已经移除) from twisted.web.client import getPage # socket对象(如果下载完成,自动从时间循环中移除...) from twisted.internet import defer # defer.Def...
2019-09-01 17:43:00 69
转载 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 65
转载 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 87
转载 Scrapy源码流程简述
crawl与twisted原理一样 from twisted.internet import defer from twisted.web.client import getPage from twisted.internet import reactor def download(*args,**kwargs): print(args,kwargs) ...
2019-08-31 18:06:00 52
转载 Scrapy配置自定义scrapy命令
写的类要在settings.py中添加配置注册 scrapy --help 在spiders同级创建任意目录,如:commands 在其中创建 crawlall.py 文件 (此处文件名就是自定义的命令) 在settings.py 中添加配置 COMMANDS_MODULE = '项目名称.目录名称' 在项目目录执行命令:scrapy crawlall ...
2019-08-31 17:52:00 202
转载 Scrapy配置之爬虫中间件
# -*- coding: utf-8 -*- # Define here the models for your spider middleware # # See documentation in: # http://doc.scrapy.org/en/latest/topics/spider-middleware.html from scrapy impo...
2019-08-31 17:35:00 114
转载 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 101
转载 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 91
转载 Scrapy配置之自动限速以及缓存
缓存:内存或本地文件,更近更快的地方拿到 HTTPCACHE_ENABLED=True 是否启用缓存策略 转载于:https://www.cnblogs.com/jintian/p/11439593.html
2019-08-31 16:49:00 573
转载 Scrapy框架扩展
在指定信号上注册操作 from scrapy import signals class MyExtend: def __init__(self,crawler): self.crawler = crawler # 钩子上挂障碍物 # 在指定信号上注册操作 crawler.signals...
2019-08-31 11:51:00 104
转载 pipeline补充
yield item 会执行 process_item def process_item return item 交给下一个pipeline raise DropItem 丢弃掉,不给下一个pipeline crawler.settings crawler封装了settings 配置文件必须大写 # -*- coding: utf-8 -...
2019-08-31 11:37:00 59
转载 去除重复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 261
转载 基于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 105
转载 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 156
转载 Array : 数组的常用方法
数组常用方法 对象通用方法 1.toLocalString() 数组中的每个元素都会调用toLocalString(),然后以逗号隔开, 拼接为字符串; 2.toString() 数组中的每个元素都会调用toString(),然后以逗号隔开, 拼接为字符串; 3.valueOf() 返回原数组 =======================================...
2019-08-29 09:00:00 96
转载 抽屉作业:初识scrapy并获取新闻标题
import io sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gbl8030') 在window运行出现编码问题加上以上代码 extract() 对象转换为字符串 extract_first() 列表的第一个元素 // 表示子孙中 .// 当前对象的子孙中 / 儿子 /div 儿子中的div标签 ...
2019-08-27 23:47:00 71
转载 scrapy爬虫介绍
scrapy crawl chouti __nolog 执行 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬...
2019-08-27 23:37:00 57
转载 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 119
转载 JavaScript之事件循环,宏任务与微任务
事件循环 Event Loop 程序中设置两个线程:一个负责程序本身的运行,称为"主线程";另一个负责主线程与其他进程(主要是各种I/O操作)的通信,被称为"Event Loop线程"(可以译为"消息线程")。 所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才...
2019-08-26 20:51:00 72
转载 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 160
转载 本周总结(19年暑假)—— Part7
日期:2019.8.25 博客期:113 星期日 转载于:https://www.cnblogs.com/onepersonwholive/p/11509428.html
2019-08-25 23:11:00 37
转载 自定义异步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 76
转载 自定义异步IO模块前戏
1、setblocking(0):无数据(连接无响应;数据未返回)就报错 2、IO多路复用 转载于:https://www.cnblogs.com/jintian/p/11406564.html
2019-08-24 23:31:00 61
转载 异步IO模块的使用
gevent:mokey.path_all (找到所有socket,进行异步IO) gevent+requests=》grequests Twisted: reactor.run() 死循环 Tornado =》gevent > Twisted > Tornado > asyncio www.cnblogs.com/wupeiqi/articles/6229...
2019-08-24 23:28:00 94
转载 多进程实现并发请求
协程:在一个线程内指定切换 协程+异步IO aiohttp asyncio 模块 封装http数据包 异步IO """ 可以实现并发 但是,请求发送出去后和返回之前,中间时期进程空闲 编写方式: - 直接返回处理 - 通过回调函数处理 """ ########### 编写方式一 ########### """ from...
2019-08-24 23:14:00 396
转载 多线程实现并发请求
多线程:不应该开太多,线程之间切换会消耗 编写方式 -直接返回处理 -通过回调函数处理 v.add_done_callback(done) 线程是CPU的最小工作单元,线程共享工作资源 """ 可以实现并发 但是,请求发送出去后和返回之前,中间时期线程空闲 编写方式: - 直接返回处理 - 通过回调函数处理 """ ######...
2019-08-24 23:07:00 945
转载 Web微信之获取用户消息
网站爬数据:1、url分析 请求方式 get / post 2、提交不能成功+cookies或headers 转载于:https://www.cnblogs.com/jintian/p/11406473.html
2019-08-24 22:59:00 152
转载 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 344
转载 Web微信之用户信息初始化信息并展示
JS中:location.href=' ' 跳转 转载于:https://www.cnblogs.com/jintian/p/11406438.html
2019-08-24 22:49:00 117
转载 Nacos配置中心-源码解析
一:关于Nacos的思考 首先思考一个问题,Nacos作为配置中心,Nacos 客户端是怎么实时获取到 Nacos 服务端的最新数据? 其实客户端和服务端之间的数据交互,无外乎两种情况: 1.服务端推数据给客户端 2.客户端从服务端拉数据 zk作为配置中心,基于zk的watcher机制,配置发生变化通知客户端,Nacos也是同样...
2019-08-24 14:58:00 891
转载 Web微信之用户扫码
v=re.findall(' uuid="(.*)");',response.text) v是(.*)分组的内容,一个列表 from django.shortcuts import render,HttpResponse import requests import time import re import json CTIME = None QCODE...
2019-08-24 13:24:00 136
转载 《Java 8 in Action》Chapter 3:Lambda表达式
1. Lambda简介 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 匿名——我们说匿名,是因为它不像普通的方法那样有一个明确的名称:写得少而想得多! 函数——我们说它是函数,是因为Lambda函数不像方法那样属于某个特定的类。但和方法一样,Lambda有参数列表、函数主体、返回类型,还可能...
2019-08-24 10:28:19 62
转载 示例:自动登录知乎
import requests from bs4 import BeautifulSoup # 1. 访问登陆页面,获取 authenticity_token i1 = requests.get('https://github.com/login') soup1 = BeautifulSoup(i1.text, features='html.parser') tag =...
2019-08-23 23:51:00 173
转载 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 70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人