首先,从问题出发: http://ac.scmor.com/ 在谷歌学术镜像网收集着多个谷歌镜像的链接.我们目标就是要把这些链接拿到手. F12查看源码可以发现,对应的a标签并不是我们想要的链接,而是一个js点击函数. 其实在 onclick="visit('AD0mWAw2VVYgWiAdDB4LHQwqaxY2XxcVL0M9FiEYTxM=')" 上面一段代码里,AD0mWAw2VVYgWiAdDB4LHQwqaxY2XxcVL0M9FiEYTxM=就是加密后的url链接. vi…
python爬虫的一个常见简单js反爬 我们在写爬虫是遇到最多的应该就是js反爬了,今天分享一个比较常见的js反爬,这个我已经在多个网站上见到过了. 我把js反爬分为参数由js加密生成和js生成cookie等来操作浏览器这两部分,今天说的是第二种情况. 目标网站 列表页url:http://www.hnrexian.com/archives/category/jk. 正常网站我们请求url会返回给我们网页数据内容等,看看这个网站返回给我们的是什么呢? 我们把相应中返回的js代码格式化一下,方便查…
1. url:https://ac.scmor.com/ 2. target:如下链接 3. 过程分析: 3.1 打开chrome调试,进行元素分析.随便定位一个“现在访问” 3.2 链接不是直接挂在源码里,而是调用一个名为“visit”的js函数.下一步去找这个函数. 3.3 对资源全局搜索,找到visit函数: 3.4 看到它还调用了一个strdecode函数,再去找: 3.5 看到它还调用了一个base64decode函数,接着找: 上面的变量也是需要的. 3.6 接下来,把所有用到的js…
学习JS反爬 地址:http://openlaw.cn/login.jsp 想在指导案例中抓些内容,需要登陆 账号密码发送会以下面方式发送 所以需要找到_csrf和加密后的password,_csrf服务器生成的显示在登陆页面上,ctrl+F搜索 ctrl+F搜索password,找到一段js代码,可以看出password在加密后重新填入input再提交 需要找到加密函数KeyEncrypt,ctrl+F搜索 这段复制到新的snippets,看代码调用了JSEncrypt,CryptoJs继续c…
字体反爬,是一种利用 CSS 特性和浏览器渲染规则实现的反爬虫手段.其高明之处在于,就算借助(Selenium 套件.Puppeteer 和 Splash)等渲染工具也无法拿到真实的文字内容. 这种反爬虫手段通常被用来保护页面中的关键数据,例如影片票房.外卖平台的商家电话.汽车门户上的车型报价或者是电商平台上商品的属性和价格. 关于字体反爬虫的介绍.实现和原理可以参考书籍<Python3 反爬虫原理与绕过实战>,也可以通过搜索引擎查找资料,本篇文章不再赘述. 本篇文章要解决的问题,是如何让程序…
在node.js中,有了 cheerio 模块.request 模块,抓取特定URL页面的数据已经非常方便. 一个简单的就如下 var request = require('request'); var cheerio = require('cheerio'); request(url,function(err,res){ if(err) return console.log(err); var $ = cheerio.load(res.body.toString()); //解析页面内容 })…
前言 本文意在记录,在爬虫过程中,我首次遇到Protobuf时的一系列问题和解决问题的思路. 文章编写遵循当时工作的思路,优点:非常详细,缺点:文字冗长,描述不准确 protobuf用在前后端传输,在一定程度节约了带宽,也为爬虫工程师增加了工作量. 遇见Protobuf 一拿到网站,F12查看是否有相关数据的请求接口 ok! 接口找到了,看下请求参数吧! emmm~~ 为啥请求参数是乱码? 平时见着的都是这个样子滴?可以直接看到参数! 哎,咱们这初出茅庐的菜鸟,乖乖搜搜,看看有没有前辈们写过相关…
前言 如果再说IP请求次数检测.验证码这种最常见的反爬虫技术,可能大家听得耳朵都出茧子了.当然,也有的同学写了了几天的爬虫,觉得爬虫太简单.没有啥挑战性.所以特地找了三个有一定难度的网站,希望可以有兴趣的手动实践一下. 此篇文章只作知识扩展和思路引导,其中涉及的网站反爬技术,仅做技术学习探讨. 字体加密 字体加密总结成一句话:你看到的不是你看到的. 地址 猫眼电影:https://maoyan.com/films/343568 问题还原 最近的哥斯拉大战金刚看了没啊,好看不,评分高不高,票房多少…
前言 同上一篇的aes加密一样,也是偶然发现这个rsa加密的,目标网站我就不说了,保密. 当我发现这个网站是ajax加载时: 我已经习以为常,正在进行爬取时,发现返回为空,我开始用findler抓包,发现它验证了cookie,然后我带上cookie访问放到headers里,就能得到结果 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chro…
搞科研的小伙伴总是会被期刊严苛的引用文献格式搞的很头疼.虽然常用的文献软件可以一键导出BibTex,但由于很多论文在投稿之前都会先发上Arxiv占坑,软件就很可能会把文献引出为来自Arxiv.我用的是Zotero,就有这个毛病. 因此,如果是IEEE的期刊,最好是直接去IEEE官网搜索并导出引用,否则可以使用谷歌学术.为了减少重复性的动作,我使用selenium来帮我完成这些操作.Selenium是Python的一个爬虫包,具体可以看:Python Selenium库的使用. 在此之前,需要安装…