自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 BOSS直聘免费下载个人简历为PDF的方法

首先,点击进入预览页面此时这个页面除了你的个人简历,就只有一个多余的headers里,那么在“下载简历”这一行点击右键检查,右击这个标签选择Delete Element关闭调试窗口,右击页面,选择打印保存即可...

2021-05-26 11:10:16 8622 2

原创 猿人学第十八题(jsvmp)题解

猿人学第十八题[题解找到请求发送的位置确认参数生成位置加密过程hook说实话,这种反爬真的是第一次见,而且反爬逻辑还算比较清晰,参数没有被过分的加密处理很容易推算出来,好了,既然都做到第十八题了,其他的废话也不多说,直接进入调试阶段。找到请求发送的位置第一页没有加密,跳过,直接看第二页的数据,抓到请求后,点击initiator查看请求发起位置,点进去第一个代码如图大眼一看,这里没有任何添加参数什么乱起八糟的逻辑,既然被标记位困难那肯定有他的道理在的,从xmlHttpRequest生成开始,一步

2021-03-22 19:07:03 4879

原创 elasticsearch通过动态模板实现年度对象字段定义

{ "settings": { "index.refresh_interval": "1s", "index.number_of_replicas": "1", "index.number_of_shards": "2" }, "mappings": { "btc_balance_test": { "dynamic_templates": [ {

2021-02-22 15:21:36 932

原创 汽车之家字体加密破解(CSS样式反爬)

废话不说多,直接切入主题。能来到这里的应该都已经发现汽车之家论坛以及一些频道的网页源码是这种:刚看到这里的时候,想到刚学爬虫时所听说的CSS样式反爬,没错,就是这个。破解方法就是破解其字体文件即可,通过Chrome抓包找到一个.ttf的请求,可以得知这是字体文件为一次单独的请求。在源码中搜索ttf,即可找到ttf字体文件的url。刚开始的想法时构造一个字典,形成映射,后续的爬取工作都使...

2020-11-27 14:16:32 2539 2

原创 web爬虫-自定义字体反爬通用解决方案

简介之前做过汽车之家的字体反爬并可以以100%的成功率稳定解析,但是手动去生成一个已知的字体json是一个极其繁琐且无聊的过程,这导致了以后如果新增带有字体反爬的网站或者目标网站改版,则又要手动去生成,过程及其痛苦,后来有小伙伴问我,能不能省去这个手动的过程,让它全自动,当时受知识面所限,我回答不可能。这几天又想起这个问题了,就想尝试一下能否全自动,经过周末两天的半打鱼半晒网,终于实现了自动化...

2020-11-27 14:15:34 1141 2

原创 Elasticsearch问题

Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。实际上,这个过程是根据下面这个公式决定的:shard = hash(routing) % number_of_primary_shardsrouting 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。 routing 通过 ha...

2020-11-27 14:12:52 782

原创 scrapy各种请求参数

get请求 查询字符串1.使用FormRequest start_urls = ['https://careers.tencent.com/tencentcareer/api/post/Query?'] def start_requests(self): for url in self.start_urls: params = { "timestamp": str(int(time.time() * 1000)),

2020-10-10 16:13:17 3701

原创 调用第三方so时包名正确仍提示java.lang.UnsatisfiedLinkErro的解决方法(转载)

报错如下在集成腾讯云的sdk的时候,报下面的错java.lang.UnsatisfiedLinkError: No implementation found for int[]com.tencent.rtmp.TXRtmpApi.getSDKVersion()image.png遇到的情况1、在网上搜索,都是说需要将在grade里面加上abiFilters。但是这个我已经加了为啥还是会出...

2019-12-25 09:24:30 1227

原创 2.elasticsearch进一步了解

面向文档在应用程序中对象很少只是一个简单的键和值的列表。通常,它们拥有更复杂的数据结构,可能包括日期、地理信息、其他对象或者数组等。也许有一天你想把这些对象存储在数据库中。使用关系型数据库的行和列存储,这相当于是把一个表现力丰富的对象挤压到一个非常大的电子表格中:你必须将这个对象扁平化来适应表结构--通常一个字段>对应一列--而且又不得不在每次查询时重新构造对象。Elastics...

2019-11-15 14:33:19 856

原创 Elasicsearch查询-高级查询-子条件查询

子条件查询:以特定字段查询所指定值Query context在查询过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来表示匹配的程度,旨在判断目标文档和查询条件匹配的有多好全文本查询 针对文本类型数据字段级别查询 针对结构化数据,如数字,日期等...

2019-11-15 11:20:04 950

原创 记录一次使用docker-compose部署django前后端分离项目

使用django写了一个前后端分离的个人博客,正好赶上之前买的阿里云的服务器到期,又重新装了一次环境,总之很麻烦,正好最近在学docker,试一下用docker部署。个人感觉使用docker部署的好处就在于一次性部署,随处可用,在windows下生成的镜像也可以迁移到Linux。项目简介博客使用了django-rest-framework框架进行后端程序编写,缓存用到了redis,数据存储...

2019-11-14 15:18:42 2309 3

原创 docker常用操作

镜像操作docker images 列出所有镜像docker rmi image_id 删除镜像docker save -o 文件名(tar) 镜像名 打包镜像docker load -i 文件名(tar) 从文件中加载镜像docker run -d 镜像名 以守护进行模式运行一个容器容器操作操作意义参数docker ps列出容器-a 列出所有容器 ...

2019-11-14 10:58:11 785

原创 基于conda环境的Scrapy Python爬虫简易管理脚本

#!/bin/bashCONDA_PATH="/root/anaconda2" # conda dirCONDA_VENV_NAME="douyin" # 虚拟环境名PROJECT_NAME="douyin" # 项目名,可随意PROJECT_PATH="/data/douyin/douyinChallenge/douyinChallenge" # scrapy项目路径SPIDER_NA...

2019-11-14 10:32:16 967

原创 redis和rabbitmq实现延时队列

有时候有些业务是需要在消息过期后执行一些操作,譬如订单创建三十分钟后自动删除。redis通过redis键过期通知可以实现此功能首先启用redis通知功能:编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知):notify-keyspace-events Ex或者登陆redis-cli之后,输入以下命令:config set notify-key...

2019-09-20 17:02:28 2007

原创 scrapy技巧

最近写scrapy的时候,有些链接会自动重定向,就导致了不同的错误都重定向到了一个相同的页面,导致无法根据响应内容做对应的处理,查了文档,关闭重定向的方式为:REDIRECT_ENABLED = False但是经过实际测试,该重定向只能针对响应状态为302,301的重定向进行处理,无法处理通过元数据进行重定向的页面,类似于:<meta http-equiv="refresh...

2019-08-27 14:04:11 1015

原创 bash脚本-centos7安装docker

#!/bin/bashset -ex \ && sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-lat...

2019-08-22 16:30:46 1235

原创 使用rabbitmq实现异步发送邮件

# -*- coding: utf-8 -*-# @Time : 2019/8/21 17:35# @Author : Coderfly# @Email : [email protected]# @File : test.pyfrom smtplib import SMTP,SMTPExceptionfrom email.mime.text import MI...

2019-08-21 18:17:43 1843

原创 如何使用尽可能少的代理IP爬取尽可能多的网页资源

越来越多的网站采用了封(限制)IP的策略,单个IP访问过于频繁就会被献祭掉,但我们的IP数量是有限的,当遇到大型网站时,如果使用尽可能少的资源完成尽可能多的资源获取呢?(针对短效IP)确定IP被封的条件,找出不被封的临界点如果某网站的限制条件为:每0.5秒访问一次,连续访问100次就封禁,那么我设置成0.55秒访问一次,是否就可以绕过这个低级的反爬?实测是可行的,但这样做的网站很少,据说现...

2019-08-21 17:14:03 229

原创 Python通过exec函数实现动态生成函数

exec为Python内置函数,可以实现将字符串转成python表达式并执行example:简单单行语句exec("print('haha')")-> hahaexec('print(1+7)')-> 8多行语句需要注意模块导入的问题,需要在执行前将所需依赖全部导入,也可以在函数内部导入...

2019-08-13 14:36:58 1394

原创 Scrapy常见异常以及解决方法

Request.url is not modifiable, use Request.replace() instead不能直接在process_response直接修改url,需要调用方法request._set_url(url)<twisted.python.failure.Failure <class 'OpenSSL.SSL.Error'>错误原因一般是...

2019-07-31 14:40:14 2431

原创 scrapy如何在中间件修改请求url

最近在做汽车之家爬虫的时候,访问频繁会被重定向到人机验证页面,此时request的请求url已经发生改变,直接更换ip然后return request的话会重新访问人机验证页面,所以需要在下载中间件中修改url。直接修改的话,会抛出此异常因为相应回来之后,无法对requests的url进行直接修改,但是scrapy提供了_set_url方法来修改。...

2019-07-31 09:42:22 2715

原创 Python使用content.encode(“utf-8“).decode(“unicode-escape“)导致中文乱码的解决方法

当想要把一个字符串中的\u002F这样的字符串转成正常字符串时,如果字符串中存在中文字符,将导致中文被转成乱码。例如:content = "\\u002F哈哈"content = content.encode("utf-8").decode("utf-8") ==> \u002F哈哈 无法进行转码如果使用.decode(“unicode-escape”)content = "...

2019-07-29 16:50:44 15950 7

原创 爬虫之极验验证码破解-滑动拼图验证码破解

滑动拼图验证码破解前言步骤分析第一步,获取原图第二步 拼接图片第三步 计算豁口所在位置前言滑动验证码已经流行很多年了,我们在这里尝试一下如何实现滑动拼图验证码的自动化拖动。这是某网站的注册页面,点击拖动按钮后会出现豁口滑动。步骤分析大致流程就是使用webdriver此页面后,获取到原图以及有豁口的图,拿这两个图进行对比,找到豁口部分的左侧坐标,根据这个坐标进行滑动验证即可。第一步,获...

2019-07-26 18:00:21 10214

原创 爬虫之js加密参数破解练习-百度指数爬虫(附完整源码)

百度指数爬虫分析查看响应体找到加密的代码块完整代码分析百度指数,发送数据的时候没有加密参数,直接将关键字替换就可以实现不同网页的访问,响应数据url:https://index.baidu.com/api/SearchApi/index?word=王者荣耀&area=0&days=30但是其响应的数据却有加密,所以我们要分析,如何对数据进行解密。查看响应体不难猜出,几...

2019-07-24 16:05:32 3159 4

原创 爬虫之js加密参数破解步骤分析-百度翻译移动版sign值的获取

百度翻译sign值的获取所解决的问题请求参数分析动态分析参数生成方式定位参数生成的位置断点调试使用python生成sign第一种方式-读懂js代码,翻译成python使用执行js的包所解决的问题js参数加密,越来越多的网站进行数据传输时不使用明文传输而改为使用js通过一定的规则的转换后,后端进行解密,或者对铭文数据进行转换后,将值单独放在另一个字段,后端通过相同的方法进行转换后与我们传过去的值...

2019-07-24 12:43:04 1679 3

原创 使用tesseract实现简单图形验证码识别

Tesseract-OCR学习一安装测试数字识别英文识别中文文字识别python对接安装按照官方文档提示进行安装语言库选择math,chinese simplified.windows下需要添加环境变量变量名TESSDATA_PREFIX变量值F:\Program Files (x86)\Tesseract-OCR\tessdata测试数字识别进入tesseract安装目录...

2019-07-22 12:25:31 1519

原创 使用gunicorn+nginx部署flask时,Flask限流模块-flask-limiter获取远程客户端ip地址

解决问题:使用Nginx+gunicorn部署时,限流模块获取ip地址进行限制时,只能获取到本机地址。nginx配置修改加上roxy_set_header X-Real-IP $remote_addr;flask-limiter获取ip地址函数修改这是使用限流模块获取远程ip地址的函数def get_remote_address(): """ :return: t...

2019-07-19 10:17:32 1114

原创 Pillow 之frombytes从二进制中读取图片

frombytesfrombytesfrombytes# 原方法def frombytes(mode, size, data, decoder_name="raw", *args): pass# 示例代码import requestsfrom PIL import Imagecontent = requests.get("http://my.cnki.net/Register/C...

2019-07-18 10:38:04 17091 1

转载 pyppeteer使用常见问题及解决方案(转)

一、前言以前使用selenium的无头浏览器,自从phantomjs2016后慢慢不更新了之后,selenium也开始找下家,这时候谷歌的chrome率先搞出来无头浏览器并开放了各种api,随后firefox也开始做。现在selenium的测试也都支持这两个浏览器的无头模式了,只需要在引入的时候配置一下就可以了。之所以要采用谷歌chrome官方无头框架puppeteer的python版本pyp...

2019-07-15 17:17:34 9139 2

原创 Flask+Pyppeteer搭建自动生成动态cookie的服务器

Flask+Pyppeteer搭建自动生成动态cookie的服务器前言pyppeteer修改User-Agent修改浏览器特征cookie的获取Flask结果结语前言公司有个项目大致工作流程为客户批量发送url,我们拿到后对这批url进行数值和评论的采集,网站呢是有个限制范围的(即配置库),普通的网站直接根据配置采集即可,但有些网站则需要生成cookie才能访问到内容,之前是在系统内嵌入了se...

2019-07-15 17:12:19 985

原创 抖音模拟登陆的实现

抖音爬虫-登陆参数加密第一步,对账号,密码转成bytes类型并与0x5异或第二步第一步,对账号,密码转成bytes类型并与0x5异或第二步

2019-06-27 18:21:45 16200 17

原创 dockerfile构建自定义镜像(以python3.6为例)

dockerfile构建自定义镜像实例其他参数实例以centos7.6为基础镜像,构建带有python3.6.8的镜像FROM centos:7.6.1810RUN set -ex \ && yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-dev...

2019-06-10 19:17:16 11826

原创 CentOS7.6安装python3.6.8并与python共存

将以下命令保存为.sh文件,bash 运行即可#!/bin/bashset -ex \ && yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make wget \ && yum clean...

2019-06-10 17:34:54 480

原创 docker镜像与容器的基本操作

docker镜像操作镜像操作docker images 参数容器操作docker container 参数将镜像推送到远端仓库(阿里云)镜像操作docker images 参数-a, --all 显示所有详细信息–digests 显示摘要-f, --filter filter Filter output based on conditions pr...

2019-06-10 17:08:18 263

原创 django笔记-模板的使用以及is_safe详解

Django 似乎是一个 MVC 框架,但是您将控制器称为“视图”,并视图称为“模板”。 为什么不使用标准命名?¶当然,标准化的名称是有争议的。在我们对 MVC 的解释中,“视图”描述了呈现给用户的数据。数据看起来怎么样并不重要,重要的是哪些数据被呈现。该视图描述了*您看到了哪些数据*,而不是*您怎么看到数据。*这是一个微妙的区别。所以,在我们的例子里,一个"视图(view)"是 Python 中针对一个特定 URL 的回调函数,此回调函数描述了需要展示的数据。此外,将内容和展示效果分开是很明

2019-06-04 16:18:03 1625

原创 微博采集所用到的几种cookie总结

微博cookie的分类用户登陆cookie游客cookie登陆后访问敏感微博所产生的cookie更多的待发现用户登陆cookie该cookie为微博网页版登陆所产上的cookie,可用于几乎所有的微博内容,微博评论采集,但是无法访问部分微博内容的接口(即未登录状态下显示404的微博)。游客cookie该cookie为未登陆状态下访问微博所需要的cookie,可用于几乎所有的微博内容,微博评...

2019-05-31 09:39:30 2839

原创 pyppeteer实践一--大鱼号模拟登陆

安装与环境配置就不多说了。网上有很多淘宝的模拟登陆,大鱼号的跟淘宝差不多,我看好像是用的阿里的API,只不过实现方法略微有些不同。直接用selenium和pyppeteer打开时无法拖动滑块成功的,会一直失败,原因是有webdriver特征值检测;之前面试的时候做个这个,用的不是pyppeteer,用了其他两种方案。第一种是使用ie浏览器或者一些老版本的火狐,也是可以实现的,但...

2019-05-16 16:26:05 2041 7

原创 django+uwsgi+nginx远程服务器简单部署

  Step:1 软件安装nginx,mysql,redis。redis默认配置即可,为了可以远程连接数据库需要进行以下操作(root用户为例):grant all on root.* to 'root'@'%'; flush privileges修改mysql配置文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf将此行注释。...

2018-08-11 00:47:07 1216

原创 SSH远程服务器免密登录

Step 1:本地生成密钥对 ssh-keygen -t rsa查看公钥:cat /root/.ssh/id_rsa.pub复制公钥准备配置Step 2:服务器配置服务器端:vim /etc/ssh/sshd_config红线行,解除注释/.ssh/authorized_keys    存放公钥mkdir /.sshvim /.ssh/autho...

2018-08-10 17:45:33 436

原创 迪杰斯特拉算法-单源最短路径

采用广度优先搜索思想,对有向赋权图寻找最短路径。 该算法对于不含负权的有向图来说,是目前已知的最快的单源最短路径算法。 时间复杂度:O(n^2) 基本原理:不断为为每个顶点 v 保留目前为止所找到的从s到v的最短路径  from cmath import inf"""每次找到离源点最近的一个点,以该点为中心进行扩展,最终得到源点到其余所有点的最短路径1.将所有定点分为两部分...

2018-08-07 13:13:25 612

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除