问答媒体

 找回密码
 立即注册
快捷导航
搜索
热搜: 活动 交友 discuz
查看: 117|回复: 12

爬虫实战——四大指数之搜狗指数(四)

[复制链接]

1

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-2 12:55:34 | 显示全部楼层 |阅读模式
继续我们的指数爬虫--搜狗指数!
今天早上来,我发现电脑端的搜狗输入法(最信任)出问题了。。。然后我就忍痛割爱的将它卸载了。然后神奇的 一幕出现,我不知道点到了啥,就进入了搜狗指数的界面了。
好吧,我承认之前不知道搜狗指数的存在,要是知道了。呵呵呵,一定要写个爬虫把他给抓下来。今天既然遇到了,择日不如撞日,马上开启我的python大法!!!
分析篇:

搜狗指数算是我遇到过最简单的指数爬虫了,进入搜狗指数主页,输入关键词:产妇。


这两天这个话题的搜索率有点高啊。一下就直线上升!!(好像是有个什么事件),说明什么啦,确实这些指数给的数据是准确的啊(题外话)。
我们看到2017年9月6日,搜狗指数值:329634(记住这个数据,很重要!)。
通过查看源代码并搜索:329634


可以发现,这个数据就存在源代码中,我们可以直接通过访问这个源代码的网页端,就可以找到数据源了!
相比较百度指数,是不是觉得这个搜狗指数简直简单了不少呢。!
同样的道理,在fiddler中去找到这个数据源。



这样是不是就找到数据源啦,通过数据源再去查找网页。访问网页就能获得这些数据啦。
分析就到此,是不是觉得很ez~
编程篇:

编程其实很简单,这块只是你分析时候的逆向思路,所以我一直在强调,编程之前一定要先分析,没有分析,没有编程(哈哈,是不是高中数学证明题方法---反证法)!
今天主要使用的python库有requests,re,bs4,json库


1、最开始编程我还是需要去访问搜狗指数的主页,虽然有时候这一步可以省略,但是我在编写程序的时候我一般是不会省略(不能偷懒),原因我来告诉你:
A、在之前做百度登陆的时候,我就遇到过,不去访问主页会很快的封掉你的ip,你不能正常的访问。
B、有些需要登陆的网站,他在主页就会有set-cookie,那么我比较喜欢用requests库,cookie在改变的时候,不管你怎么做,都登陆不了网站。
C、访问主页的时候一定要带上headers,经验之谈(千万记住咯!)。有些同学会问,headers那么多,我一点都不好写,需要copy非常多的东西,其实我告诉你,headers里面的数据一样都不能少!!(我有个小工具,很轻松的,2s就可以拿出headers。)


代码我还是放上来。
2、核心代码,之前我们分析了在那个网页上可以获取到数据。现在我们回顾一下这个网页需要一些什么参数:


可以看到,webform下需要4个参数,每个参数的含义我们大概可以猜猜。
"kwdNamesStr": 关键词,
"dataType": "SEARCH_ALL",
"queryType": "INPUT",
"timePeriodType": "MONTH"数据时间跨度。
好的,就按照我们自己的想法去尝试一下。headers,4个参数,url都可以拿到,采用requests库中的get方法。参数传入的方法如图:


params为4个参数。从headers中读取到可以采用dict类型传入。


代码还是放上来。
3、取数据与清洗数据,这一步是整个爬虫最后一步,我们需要什么数据就从这里得来。
还是来看看网页源代码是什么:


截图不完整,见谅!
观察发现数据其实就在我标注了哪一行,怎么看都不想是用html的结构,所以在最后,豇豆哥采用了正则匹配的方法去匹配这些数据。多的不说,直接放源代码。


至此,这个项目就编程完成了。
总结篇

1、编程第一条,一定要访问主页,加上headers,不要偷懒,不然后期出现问题(比如:登陆补上,抓去不了数据等)用于排查问题的时间都比这点时间多的多。
2、豇豆哥在编写正则表达式的时候遇到一些问题,不过很快解决了,正则表达式继续加强学习。推荐搭建使用:正则表达式测试器


3、后期可以考虑如何用matplotlib把数据可视化。
over~
ps:喜欢的朋友点播赞,关注走一波,后期专栏会持续输出干货。
回复

使用道具 举报

1

主题

4

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-12-2 12:56:21 | 显示全部楼层
@Crossin 先生点评一下。
回复

使用道具 举报

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-12-2 12:56:55 | 显示全部楼层
细细的看完了整个过程,感觉这篇文章比之前的要简单些,不过对于我这个爬虫小白来说还是蛮难的,给博主点赞。代码写的很精炼,赞
回复

使用道具 举报

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-2 12:57:18 | 显示全部楼层
这篇文章是比较简单,我写的比较详细,当然你看着也比较容易理解。有空给我分享分享了。
回复

使用道具 举报

1

主题

3

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-12-2 12:57:26 | 显示全部楼层
不喜欢bs和正则
回复

使用道具 举报

1

主题

6

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-12-2 12:57:37 | 显示全部楼层
熟练就好  按照你的习惯做
回复

使用道具 举报

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-12-2 12:58:37 | 显示全部楼层
我后来下载了正则表达式测试器,但是不知道怎么用,请问有没有好的网站或者学习资料指引呢?
回复

使用道具 举报

0

主题

5

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-2 12:59:28 | 显示全部楼层
Python正则表达式 | 菜鸟教程  我当时在这个网站学习的 你也可以参考参考
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-2 12:59:37 | 显示全部楼层
好的,谢谢豇豆哥
回复

使用道具 举报

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-12-2 13:00:36 | 显示全部楼层
记得16年圈子里很多大牛用fiddler0.01撸各种东西吃,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver| 手机版| 小黑屋| 问答媒体

GMT+8, 2025-3-15 18:19 , Processed in 0.139029 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

快速回复 返回顶部 返回列表