dayday_baday
码龄7年
  • 343,392
    被访问
  • 84
    原创
  • 1,496,658
    排名
  • 81
    粉丝
  • 0
    铁粉
关注
提问 私信
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2015-08-16
博客简介:

Catastrophe

查看详细资料
个人成就
  • 获得96次点赞
  • 内容获得85次评论
  • 获得198次收藏
创作历程
  • 1篇
    2021年
  • 5篇
    2020年
  • 21篇
    2019年
  • 19篇
    2018年
  • 1篇
    2017年
  • 37篇
    2016年
  • 2篇
    2015年
成就勋章
TA的专栏
  • golang
    1篇
  • 睡前读物Scrapy
    8篇
  • python
    32篇
  • 爬虫
    20篇
  • android开发
    33篇
  • java
    2篇
  • Git
    2篇
  • android测试
    4篇
  • 数据库
    5篇
  • Linux
    2篇
  • leetcode
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

CLUSTERDOWN The cluster is down 的解决办法

在本机上单机创建redis cluster执行命令报错 (error) CLUSTERDOWN The cluster is downredis-cli --cluster check 127.0.0.1:6379给出问题原因 not all 16384 slots are covered by nodes因此是部分slot分配的节点已经挂掉了输入命令 redis-cli --cluster fix 127.0.0.1:6379问题解决...
原创
发布博客 2021.02.25 ·
3202 阅读 ·
1 点赞 ·
3 评论

【golang】go 使用sarama写入kafka数据时间戳问题

查看消息时间戳的命令:kafka-console-consumer --bootstrap-server localhost:9092 --property print.timestamp=true --topic test --from-beginning发现sarama生产者推送到kafka的CreateTime均为-1。而命令行推送到kafka的时间戳正常。原因:sarama默认支持的是0.8.2的kafka版本,而timestamp的支持是从0.10版本开始的。因此需要初始化生产者配置时指
原创
发布博客 2020.09.18 ·
597 阅读 ·
0 点赞 ·
0 评论

Scrapy logging日志重复输出的解决方法

如果是完全在scrapy流程中的日志,一般有三种输出方式。from scrapy.log import loggerlogger.info("info")# 会抛出warning,警告scrapy.log已经被废弃,此时的logger为 scrapy.log# ScrapyDeprecationWarning: Module `scrapy.log` has been depreca...
原创
发布博客 2020.04.08 ·
1193 阅读 ·
0 点赞 ·
6 评论

【爬虫】Python http.client能拿到数据而requests状态码异常

遇到一个case,抓包之后丢进postman无法正常拿到数据,使用curl和requests时也无法正常取到数据。而java,go,python的http.client库可以正常取到数据。当url和headers相同时,不同库的请求拿到结果不同。对requests和http.client请求抓包进行对比。headers一个个看过去发现requests多了一个accept请求头,那accept请求...
原创
发布博客 2020.03.18 ·
356 阅读 ·
1 点赞 ·
0 评论

python sorted函数自定义排序

一般使用sorted函数的时候,直接会将key设置为一个lambda表达式的匿名函数。这样一般可以直接对字典的key或者value进行排序。但是今天刷leetcode的时候,需要对字典value的数组进行逐一排序,当value一致时,按key的字母顺序排序。这时候就需要自定义比较方法了。通过functools中的com_to_key将一个函数转变为参数key的值。https://leetco...
原创
发布博客 2020.03.01 ·
1223 阅读 ·
0 点赞 ·
0 评论

scrapy请求头首字母大写的解决方法

背景:同样的url, headers, payload进行post请求,requests可以正确的拿到数据,而scrapy则无法通过验证。通过抓包发现,scrapy所发出的请求头首字母均为大写,在postman中将请求头的各个key改为小写后能正确拿到请求数据。原因:scrapy的Request对象通过传入的headers字典初始化了一个scrapy.http.Headers对象,Head...
原创
发布博客 2020.01.09 ·
843 阅读 ·
2 点赞 ·
0 评论

uiautomatorviewer报错:java.lang.reflect.InvocationTargetException

在使用uiautomatorviewer对设备进行截屏时,出现异常Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationTargetException解决方法:通过android studio对sdk tool进行了更新,从25.x 升级到了26.1.1升级后sdk manager没有界面了,ui...
原创
发布博客 2019.12.16 ·
1498 阅读 ·
0 点赞 ·
0 评论

在linux服务器上搭建mitmproxy

pip install mitmproxymitmdump --listen-host 0.0.0.0 -p 5555如果服务器与手机不在同一局域网,确定手机能连通服务器的情况下,启动mitmproxy时增加–set block_global=false...
原创
发布博客 2019.12.14 ·
754 阅读 ·
0 点赞 ·
0 评论

Python过滤字符串中的unicode乱码

最近获取到的字符串里除了正常的汉字字符外,有一些unicode的乱码在里面显示异常。 我是憨憨因此想要过滤掉这些显示异常的字符。str = eval(str.__repr__())可以通过repr获取raw string,进行正则匹配替换。这样就将字符串中的乱码unicode过滤掉啦!~...
原创
发布博客 2019.08.01 ·
5469 阅读 ·
1 点赞 ·
0 评论

brew cask install java8 失败

用网上看到的命令,结果brew cask 找不到指定版本brew tap caskroom/versionsbrew cask install java8Error: Cask ‘java8’ is unavailable: No Cask with this name exists.搜到一条命令brew cask install adoptopenjdk8下载结束后java -ve...
原创
发布博客 2019.05.25 ·
8722 阅读 ·
2 点赞 ·
0 评论

(六)Scrapy的抓取流程——Downloader

当通过Scheduler取出一条request之后,engine就会调用_download方法进行对这条request的下载。图中downloader的fetch方法就是下载器对request的操作方法。通过DownloaderMiddlewareManager在download方法中定义了process_request, process_response, process_excepti...
原创
发布博客 2019.04.26 ·
248 阅读 ·
0 点赞 ·
0 评论

【Pyppeteer】ConnectionError:Connection is closed解决办法

想着用Pyppeteer写一个渲染web页面的接口,测试的时候发现过不了多久。常驻的browser在newPage()创建的时候就会报错。一直提示Connection is closed。这种情况应该也适于其他连接异常的情况。出现这种情况的原因是建立连接是通过websocket库,而websocket连接默认过期时间是20s,所以经过20s后连接断开也就无法控制浏览器了。解决方法:在...
原创
发布博客 2019.04.18 ·
7159 阅读 ·
2 点赞 ·
0 评论

inode使用率过高的解决方法

周末因为一个鸟程序的日志每条都疯狂输出到一个文件,直接把inode塞满了。记一下排查方法和删除大量文件所做的一些措施。问题排查for i in /*; do echo $i; find $i | wc -l; done首先使用上面的这条命令一步步缩小范围,确定在哪个目录下inode的节点数过多异常。最后我锁定到了日志目录,可是里面只有几个日志文件,在目录下直接运行这条命令也只能看到可...
原创
发布博客 2019.04.15 ·
8623 阅读 ·
0 点赞 ·
0 评论

(五)Scrapy的抓取流程——Scheduler

在Engine中,是通过Engine实例化的slot对象进行对scheduler对象的初始化,和任务状态的记录。# engine.py中ExecutionEngine的crawl方法def crawl(self, request, spider): assert spider in self.open_spiders, \ "Spider %r not opened w...
原创
发布博客 2019.04.11 ·
2274 阅读 ·
0 点赞 ·
0 评论

(四)Scrapy的抓取流程——Engine

上一篇提到在Crawler的crawl方法中,启动了Engine。而如Scrapy流程图中描述的,抓取的流程由Engine主导完成。engine是ExecutionEngine的实例,初始化时会初始化诸如scheduler、downloader、scraper(itempipeline和spidermiddleware这一块)等属性。engine.py所在的目录,抓取流程中的主要模块。E...
原创
发布博客 2019.04.10 ·
820 阅读 ·
2 点赞 ·
0 评论

(三)Scrapy的抓取流程——CrawlerProcess

上一章提到scrapy的启动是通过ScrapyCommand对象中的crawler_process实现的,crawler_process是通过crawler.py下的CrawlerProcess类创建的实例。该文件下定义了Crawler,CrawlerProcess和CrawlerRunner三个类。CrawlerProcess是CrawlerRunner的子类,而命令文件中的self.craw...
原创
发布博客 2019.04.09 ·
4522 阅读 ·
1 点赞 ·
0 评论

(二)Scrapy的初始化

初始化一个scrapy项目时往往是通过startproject 和 genspider两个命令。了解scrapy进行命令输入时的逻辑是怎样实现的之后,我们可以看看commands文件夹下这两个命令是如何运行的。(1) startproject当我们新建一个项目时通过scrapy startproject <project_name> [project_dir] 命令实现。输入...
原创
发布博客 2019.04.03 ·
1018 阅读 ·
0 点赞 ·
0 评论

(一)Scrapy的命令行

最近一直都是在用自己写的抓取框架做爬虫,还是系统的整理一下Scrapy相关的知识,做一个old school 的爬虫。爬虫的整个流程,就是发送网络请求,处理返回的内容两个过程。然后我们将这个流程细化;如何准备需要访问的链接,需要访问的链接应该是哪些链接;发送请求时我们带上什么,如何更快的发送更多请求;对返回的内容需要做哪些操作……不讲实例,只看实现。从Scrapy的源码来读Scrapy到底是如...
原创
发布博客 2019.04.02 ·
5686 阅读 ·
1 点赞 ·
0 评论

Python装饰器之lru_cache

在流畅的Python里看到的,做一下笔记。在运行一些比较耗时的函数,如递归时重复计算相同参数的函数时。通过python自带的装饰器functools.lru_cache可以将函数结果保存起来,作为缓存在重复计算时直接返回结果。减少函数运行的时间。以斐波那契数列的递归为例,首先实现一个递归的斐波那契方法:def fib(n): if n < 2: return n...
原创
发布博客 2019.03.20 ·
563 阅读 ·
0 点赞 ·
0 评论

Python的增量赋值

对于python来说,a=a+b 和a+=b的区别是什么。增量赋值运算符+=和*=的表现取决于第一个操作对象。实际上会调用对象的__iadd__和__imul__方法,当该方法未实现的时候会调用__add__和__mul__方法。而对于可变对象一般都实现了__iadd__和__imul__方法。所以对于不可变对象来说两种方式并没有区别,而可变对象的增量赋值则会在原地进行操作,因此图中的数组的内...
原创
发布博客 2019.03.19 ·
763 阅读 ·
1 点赞 ·
0 评论
加载更多