分享

QQ浏览器

 五毒缺嫖赌 2018-09-16

很多时候我们想要拿一些网站的信息做分析,而有用的信息经常是要登录后才能看到的。而且为了防爬虫,很多网站加了千奇百怪的验证码,这个就卡住了太多人。难道真的要学AI学编程才能拿到数据吗?

其实很早以前网页没那么复杂的时候,就有一些基于命令行的浏览器比如w3m,我们稍做定制就可以只看我们想的数据。但现在很多网站都改成用javascript 框架来实现了,我们就拿不到静态生成的html了。可网站上的数据从哪儿来呢,往往是一个json文件,然后再用javascript 渲染成页面。我们只要找到json文件,就可以拿到所有数据了。

首先打开Chrome, 登录你想进的网站,右键选“检查”,就会打开开发者工具,点Network选项卡

我们可以看到有很多项在下方,这些代表这个网页所有的HTTP请求,我们挨着点击后,选response, 直到发现类似json的数据, 这就代表网页从服务器端取回了一个json

我们再点Headers选项卡,找到Cookie: 全选后面那个长长的字符串选复制。再找到Request URL也存在某个文本文件里

这时我们就需要一个Linux主机了,windows10的用户可以安装wsl, 其它版本的则需要Cygwin或者一个虚拟机。 有安卓的同学可以装termux (我在以前的文章写过), 然后执行apt install jq curl 这两个是我们需要的工具

首先我们运行

curl -o test.json --cookie ''

三角括号里就是上面步骤中我们存好的两项,粘贴过来,运行后就会拿到test.json 文件

然后运行

jq '.' test.json

就会以良好的格式显示json的内容,我们可以修改上面的命令只取我们需要的数据 比如json类似这样的结构

{'data': {'list':[{'a':'b'},{'a':'c'}]}} 这样的,我们就可以用'.data.list[]' 取出所有list下面的数据

我们还可以写成一行语句实现功能,但要加个参数s,保证curl 不显示进度条

curl -s --cookie '' | jq '.data.list'

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多