文章目录

  • 缘起
  • 第一次尝试:咱毕竟是懂技术的人,干的活儿那怎么能没有技术含量?
  • 第二次尝试:算了,什么技术部技术的,土办法来吧
  • 第三次尝试:失败了?不,只是没调好参而已啦,再干!!!
  • 第四场:给老子爬!!!
    • 经验一:
    • 经验二:
    • 经验三:
    • 经验四:
    • 放码过来
  • 结语

缘起

哈喽大家好,我是“看,未来”,好久不见。或者说,好久不爬了。

但是今晚,重出江湖,“血雨腥风”不至于,拿了数据我就走。

这不要考试了嘛,想着拿一下平时的选择题来过一遍,加深一下印象。奈何那选择题都是被选过的了,答案的痕迹很明显,又不让复制粘贴。

简单的说呢,目标是这样的:

那你说这样的试题做起来有什么意思,难道我要说:“看不到看不到,我看不到答案”,骗谁呢。

而且吧,我这人有个癖好,我要打印出来看呐。

但是吧,题目可以直接复制,选项不让复制,这给我着急的啊。


第一次尝试:咱毕竟是懂技术的人,干的活儿那怎么能没有技术含量?

是吧,咱如果只会截图,提取文字,那和没学过爬虫的小白有什么两样?
我们有一个老师,给我们的题目都是纯英文的,每次做完还要我们从头到尾翻译一遍交上去。
没点技术,真得去把英语学得很六啊,不然百度翻译都麻烦?

于是我果断打开了网页源代码,这时候我可以介绍一下这套题目的规模了:

总共六套试题,平均每套试题有32道题目,这就是近200道题了,每道题有四个选项,个别多选题有五个。
也就是说,我如果用手去复制粘贴,要复制粘贴各1000下。

这事儿我能干吗?我复制粘贴了100下就果断放弃了,这事儿我干不了!!!


第二次尝试:算了,什么技术部技术的,土办法来吧

于是,我开始用截图。。。
是的,我又一次屈服了。。。

但是,就算截图,我也要与众不同,我长截图!!!
一套试卷我直接一张图分四段截下来,一段8题。到打印的时候,我成功的发现,打印出来,那字得用显微镜去看,可惜我暂时买不起。

于是,这条路又失败了。


第三次尝试:失败了?不,只是没调好参而已啦,再干!!!

缓了缓神儿,去考了场试回来,我深思熟路。

字太小,是不是我一次截太多题目了,那我一次截4题?

说干就干,吭哧坑次一小时又过去了,再打印,好家伙,字虽然小,终于可以看了,就是淡了点。

诶,不对,这答案怎么明显比较深色啊。

完了,又白干了。。。



于是我跟身边的好兄弟抱怨了一下:这复制粘贴简直要命。
他说:你可以花一个晚上。
我说:你开什么玩笑?这是一晚上能解决的事情?
他说:我的意思是,牺牲你睡觉的一晚上,弄完发我一份儿,我替你睡觉。

我当时锤爆他的心都有了,还是嘴硬:算了算了,我去爬吧。


第四场:给老子爬!!!

我想,要不我去把网页源码复制下来吧。

好家伙,复制不了。

看都不用看,这种要登录的,不交账号密码去post,根本不可能给你requests到源码的。

当时,post吧,又是加密过的。。。

你说怎么po?

我本来对post也不熟。

于是我就想转json包,发现包里的网址也上不去。

很无奈。

重头戏来了,前面讲了那么多废话,重头戏来了


经验一:

将鼠标放在数据上方,左击,有两个选项,选第一个:“copy value”,可以复制该作用域下数据。我选择的是“data”

就算json的网址无法打开(因为要登录),我们也可以通过这种方式来获取json的内部数据!!!

复制下来之后呢,放在txt文件里面,拖到浏览器打开浏览。


经验二:

这里我全程推荐用谷歌浏览器,Chrome。别问我为什么,以前讲过很多遍了。


经验三:

对于这种有很多双引号和单引号在内的数据,用三引号包起来。
但是,直接包是不行的,直接包,type是srt,但是转不了json。

会报这个错:“json.decoder.JSONDecodeError: Expecting ‘,‘ delimiter: line xx column xx (char xxx)”

问题原因:
将字符串作为字符串文字复制粘贴到Python源代码中,出现错误。

解决办法:
在这种情况下,\n被解释为单个字符(换行符)。您可以通过使用原始字符串文本来修复它(r’’,使用三引号r’’’…’’'以避免在字符串文本中转义""引号)


经验四:

Python3报错:Non-UTF-8 code starting with '\xe7’的错误

咱也不知道为啥,就是第一次可以,后面换了个字符串就行了,很迷。仔细比对了两个json字符串,没有什么区别啊。

Python3默认使用utf-8的编码格式,如果出现Non-UTF-8 code starting with '\xe7’的错误,可以在程序的最顶部加上 # -- coding:utf-8 --即可。


放码过来

不好意思啊,我这个写的比较土一点,短短几行,写不出很长的代码来,见谅见谅。

def get_value(score):'''从json类型字符串提取目标标签下数据:param score: 目标字符串:return: null'''json_js = json.loads(score)for data in json_js['lists']:print(data['title'])print("answer: " + data['answer'])for option in data['options']:print(option['id'] + ": " + option['title'])print('-------------')

不要诧异为什么只是print,没有写入文件。

不要问,问就是懒得写,我直接cv到word里不好吗?


结语

代码不是重点,重点是这个思路。不管方法有多土,只要简单,且最快的实现目标,就行了,没人管我土不土,他们只要我的文档。

也有朋友知道后跟我说:你为什么不用selenium呢?或者直接将网页源码离线保存下来?
首先,selenium不比这个好写,而且,还慢。其实就是不好写。

网页源码离线保存,我试过了,到时候还要正则,再排版,在输入到文档中,更麻烦。

我的好朋友曾给我看过一个笑话,在他看来是笑话,但是却引起了我的深思,我分享给大家吧。

有个不大的公司,遭遇一个黑客勒索,黑客说,一天不交赎金,就按时给公司断电。然后,他做到了。公司老板很着急啊,就开始让技术部门排查,查了很久查不出来,又斥重金去外面请了安全专家来排查,还是没查出来。后来,偶然有一次,被发现黑客花了点钱买通了公司里的一个老大爷,老大爷每天按时去拉电闸。。。

批复是:真正厉害的手法,往往是最原始的。。。

一千个读者有一千个哈姆雷特吧,我还是忘不了那天中午,老师让我打开了淘宝,一块钱买了我一周的努力,这就是方法论,方向论,解决问题的路子要广,要野,思路要打开,怎么稳,怎么简单,怎么来。


【经验贴】用最土的手法,最高调的绕过反爬相关推荐

  1. python爬图片_网络爬虫经验:反爬和反反爬

    我想很多人入门python是图片爬虫,就是HTTP请求,保存一下图片,用python实现非常快.网上很多爬虫的教程就讲到这里,实际上很单一,看了跟没看没什么区别,都是找一下网页的规律,然后Beauti ...

  2. url中能出现的字符_python爬虫,解决大众点评字符库反爬机制的经验

    刚开始写文章还希望大家可以喜欢,对于爬虫只是个人整理出的方法,爬虫大牛请嘴下留情.""仅限学术交流,如有冒犯请联系作者删除""话不多说,想分析天津地区餐饮行业的 ...

  3. java从入门到精通_python精通后能赚多少?平均情况。普通智商,刚毕业朝九晚五工作,每天4到5小时学多久精通?...

    知乎用户回答 啊窝额1194人赞同了该回答 这些问题之前题主应该先了解的是: Python掌握了什么是精通? 因为学习这些知识要用多久能学会是自己的学习能力决定的. 掌握Python后是找工作的职业发 ...

  4. 【JS 逆向百例】DOM 事件断点调试,某商盟登录逆向

    文章目录 声明 逆向目标 DOM 简介 逆向过程 完整代码 JavaScript 加密关键代码架构 Python 登录关键代码 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱 ...

  5. python 爬虫《百炼成佛》爬虫入门 (爬虫介绍)第一个爬虫程序

    爬虫<百炼成佛> 爬虫是什么? 爬虫:通过编写程序来获取到互联网上的资源百度 爬虫:通过编写程序来获取到互联网上的资源百度 需求:用程序模拟浏览器.输入一个网址.从该网址中获取到资源或者内 ...

  6. Python爬虫入门到实战

    带伙伴们学习python爬虫,准备了几个简单的入门实例,分享给大家. 涉及主要知识点: 1.web是如何交互的 2.requests库的get.post函数的应用 3.response对象的相关函数, ...

  7. 【JS 逆向百例】DOM事件断点调试,某商盟登录逆向

    文章目录 声明 逆向目标 DOM 简介 逆向过程 完整代码 JavaScript 加密关键代码架构 Python 登录关键代码 关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进 ...

  8. 数据挖掘r语言和python知乎_Hellobi Live |R语言爬虫实战案例分享:网易云课堂、知乎live、今日头条、B站视频...

    课程名称 R语言爬虫实战案例分享:网易云课堂.知乎live.今日头条.B站视频 网络数据抓取是数据科学中获取数据中的重要途径,但是一直以来受制于高门槛,都是专业程序员的专属技能.直到R语言和Pytho ...

  9. 2020最新Python爬取B站《全职高手》所有评论

    关注小菜鸡IT学python 目的:把B站上的番剧<全职高手>的评论全部爬取 首先打开全职高手主页,按F12出现下图 再按短评,下面出现一个url,那个就是储存评论的url. https: ...

最新文章

  1. 古老的SSM企业级应用
  2. asp.net 1.1/ 2.0 中快速实现单点登陆
  3. BigDecimal add方法问题:调用add后,求和结果没变
  4. SpringBoot拦截器不生效
  5. 爬虫开发10.scrapy框架之日志等级和请求传参
  6. mybatis开发常见SQL使用手册
  7. Canvas的save和restore
  8. 程序员提高建议之踏踏实实“扎马步”
  9. 产品设计 产品经理 喜欢的网站
  10. PHP有表单和js交互乱码问题,js 和 php交互问题
  11. qt webkit 本地html5,Qt Webkit HTML5 Score
  12. oracle instead of update触发器,oracle INSTEAD OF 触发器
  13. Acrobat Pro DC 教程,如何将演示文稿转换为 PDF 文件?
  14. Google的快照的用户体验感觉不如之前
  15. java string转gbk_Java String UTF-8 和 GBK 互换
  16. 手写springboot
  17. 关于苹果手机页面中字体大小显示不正确的问题
  18. 基于android的手机选课系统的实现
  19. 我的新书《asp.net开发技巧精讲》
  20. __DSB()指令的作用

热门文章

  1. Mac软件序列号查询工具KCNcrew Pack mac
  2. unixprocess+java+186_interproscan 的使用和遇到的问题
  3. finclip设计指南与小程序设计指南
  4. 蛙蛙推荐:蛙蛙教你发明一种新语言之一--词法分析和语法分析
  5. 计算机组成原理中EMAR是什么,计算机组成原理与汇编语言程序设计第3章2
  6. 埃拉托色尼筛选法c语言求最大公约数,用埃拉托色尼筛算法求两个数最大公约数C++的实现...
  7. 会员卡券领取 小程序_新增卡券功能在哪 微信小程序内直接领取卡券方法
  8. 香港大学计算机科学学制,香港大学CS 计算机科学专业解析
  9. HCIE-RS 论述题园区网出口选路
  10. GraphSAGE NIPS 2017 代码分析(Tensorflow版)