点击上方“早起python”,关注公众号

满满干货,极速送达

一、前言

本文为python爬虫+可视化系列第五篇,前几篇请猛戳文末链接~希望能通过详解一些简单的小项目来学习python。今天要做的是爬取百度贴吧高考吧的帖子来看看即将高考的同学们。

二、代码详解

首先来看看怎样从网站中拿到我们要的帖子标题信息,因为后面要循环去爬每一页所以我们写一个函数来爬,这里不用request也不用bs4等模块,我们使用之前文章讲过的mechanicalsoup去爬,来看代码

def get_title(full_url,result):    browser = mechanicalsoup.StatefulBrowser()browser.open(full_url)res = browser.get_current_page()tem = res.find_all('a')for tem1 in tem:tem2 = str(tem1.get('href'))title = str(tem1.get('title'))if len(tem2) == 13:result.append(title)return result

那么这个函数接收两个参数,一个是目标url,而result是一个空list用来存储标题,第一行用来创建一个浏览器实例,第二行是打开目标网站,第三行获取网页内容,第四到九行用来提取标题信息并存储到list中,最后将结果返回。

接下来因为我们需要爬高考吧前100页的帖子,所以我们先来看看每一页对应的链接有什么规律

看到这里,该如何生成每一页的链接我想就不用多说了,看代码

def patieba(url, beginPage, endPage,result):for page in range(beginPage, endPage + 1):pn = (page - 1) * 50full_url = url + "&pn=" + str(pn)get_title(full_url,result)

最后附上完整代码(如果要爬更多页数注意请求频率和代理ip的设置哦)

import mechanicalsoupdef get_title(full_url,result):print(full_url)browser = mechanicalsoup.StatefulBrowser()browser.open(full_url)res = browser.get_current_page()tem = res.find_all('a')for tem1 in tem:tem2 = str(tem1.get('href'))title = str(tem1.get('title'))if len(tem2) == 13:result.append(title)return resultdef patieba(url, beginPage, endPage,result):for page in range(beginPage, endPage + 1):pn = (page - 1) * 50full_url = url + "&pn=" + str(pn)get_title(full_url,result)if __name__ == '__main__':result = []beginPage = 1endPage = 10full_url = 'http://tieba.baidu.com/f?kw=高考'patieba(full_url, beginPage, endPage,result)

需要注意一点的是,在我们将高考吧的链接复制到编辑器中是不显示中文的,也就是我们看到浏览器中的链接是

http://tieba.baidu.com/f?kw=高考

但是实际上粘贴就成了

https://tieba.baidu.com/f?kw=%E9%AB%98%E8%80%83

这是因为浏览器对中文请求参数进行了转码,用代码访问网站所发的请求中如果有中文也必须是转码之后的。但因为我们使用的mechanicalsoup会对请求自动地进行urlencode,所以可以直接使用带中文的链接,如果是使用urllib去爬的话就需要进行下面一步转码

import urllib.parse
kw_url = "http://tieba.baidu.com/f?"
kw_key = urllib.parse.urlencode({"kw": kw})
full_url = kw_url + kw_key

三、数据分析

首先来看看泡在贴吧里的年级分布

可以看到虽然即将高考,但是贴吧里依旧是高三党占据了一大半,不过等等,怎么高考吧还混进几位初中生。再来看看文理科分布

总体来说,还是理科生更多一点,接着看大家最喜欢在贴吧讨论哪些学科

可以看到,最常常被提起的学科是数学,除了语数外讨论最多的是物理化学,难道是因为这些学科难?再来看看高三党们最想考的学校前十名

果然基本上想考的学校和大学实力成正比,不过光在贴吧发帖可不够哦,最后看下高考吧的词云图

往期内容(????猛戳可查看)

热门文章:

➤情人节用python写个网站对ta表白吧!

➤用python制作动态图表看全球疫情变化趋势

➤爬取网易云音乐1万条评论,感受疫情下的真情

➤钉钉在线求饶?五星分期付款?爬取钉钉App Store真实评价数据并分析

数据分析:

➤疫情数据哪里找,看这篇就够了

➤Python一行命令生成数据分析报告

➤python数据分析之清洗数据:缺失值处理

➤更高级的数据可视化,使用pyecharts制作精美图表

➤python数据分析万字干货!全方位解读pandas

➤python数据分析——详解python读取数据相关操作

早起python

数据分析 | python爬虫 | 网站开发 | 运维

数学 | 统计学

让我知道你“在看”

高考倒计时100天,用python看看高三党相关推荐

  1. 2021新宁二中高考喜报成绩查询,新宁二中举行2021年高考倒计时100天誓师大会

    原标题:新宁二中举行2021年高考倒计时100天誓师大会 自信.自制.自驱,做牛年最犇的冲刺者 --新宁二中举行2021年高考倒计时100天誓师大会 "再努力100天,飞翔的梦就会张开翅膀, ...

  2. 高考倒计时php,高考倒计时100天逆袭计划表

    高三是一个十分紧张的时期,特别是在距离高考还有一百天的时候,通常这个时候老师就会在黑板旁边弄一个倒计时,提醒同学们高考时间的到来,要大家抓紧时间复习和做更后的冲刺.有的同学成绩一直都是平平的,但是希望 ...

  3. 高考倒计时100天....99天

    这个文章发出来已经只有99天了罢. 回想一年前,不知此时此刻我心所思. 或许那时候我心中焦躁吧,我记得那时候成绩下滑的挺厉害的,不过好在没有特别气馁,不算太糟. 或许在想我要填报什么志愿吧,但是,现在 ...

  4. python datetime时间差_高考倒计时,聊聊Python的GUI

    2020年的高考,虽然因为疫情推迟,但是也要如期而至了.还记得那个紧张.激动又充满斗志,未来无限可能的自己吗?还记得每个教室后面的倒计时吗?今天我们来做个简单的电脑端桌面倒计时,随后聊聊Python的 ...

  5. Python贴心小管家源代码--每日播报高考倒计时、天气情况、还有“营养鸡汤”

    对于高考,你还在每天数着还有多少天吗?对于天气,你还每天去看天气预报吗?你每天需要看一些励志话语来督促自己前进吗? python可以合上述三者为一体帮你轻松实现你的日常! 运行截图: 很多人学习pyt ...

  6. python高考倒计时

    引言:本人从小白自学python,为了测试基础学习效果,增加一定的促进,想通过参加全国计算机等级考试二级python来检验基础学习情况.在学习过程中,会将该过程编写的python小程序题目在此发表,希 ...

  7. 2020高考倒计时html,2020高考倒计时激励句子100句精选大全

    高考,是我们人生的转折点,我们数十载寒窗苦读,为的就是能一朝圆梦.那你知道2020高考倒计时激励句子都有那些吗?下面是小编为大家收集的关于2020高考倒计时激励句子100句精选大全.希望可以帮助大家. ...

  8. 【网络爬虫】运行该程序获取距离2022年高考仅剩多少天,一个利用网络爬虫爬取高考倒计时的python程序

    程序解决问题描述如下: 利用网络爬虫在一个2022年高考倒计时网站上爬取距离2022年高考的天数,并将爬取到的高考倒计时天数以文本文件保存到电脑磁盘中. 打开网址按F12可以看到我们利用网络爬虫从网址 ...

  9. 游戏设计师:如何对待高考倒数100天

    欢迎关注"创事记"的微信订阅号:sinachuangshiji 游戏设计者视角,重新理解这个现实的世界 文/乔治王 来源:岛上十点(ID:BBfresh) 面临高考还剩100来天了 ...

最新文章

  1. oracle 取系统当前年份_oracle查询以当前年份为准的近些年数据
  2. 重磅!2020中国高校毕业生月薪排名:清华第1,共计24高校月薪过万
  3. 人类血液中首次发现微塑料颗粒,饮料瓶塑料袋化妆品都是来源
  4. python之web开发“三剑客”
  5. Redux vs Mobx系列(-):immutable vs mutable
  6. 实现权限控制_Spring自定义注解+AOP实现权限控制
  7. centos 减少tty数量的方法
  8. Django_RBAC_demo2 升级版权限控制组件
  9. cad插件_还不会用CAD插件?55款超实用CAD插件大合集!无套路直接送你
  10. python从邻接矩阵计算可达矩阵,复制即用
  11. 东方木分享:如何快速的安装网吧系统
  12. matlab 电机 热仿真,MATLAB在电机仿真中的应用
  13. 2014年全国最新企业名录免费采集下载
  14. uc android快捷键,UC手机浏览器助力Android快速上网
  15. 因果图法测试中国象棋马
  16. IE9修改收藏夹位置
  17. 传智播客C语言视频第二季 第一季基础上增加诸多C语言案例讲解,有效下载期为10 5-10 10关闭
  18. 史济怀20180915_1 有限覆盖定理
  19. 面试准备:逻辑智力题
  20. Es6箭头函数详细用法

热门文章

  1. 用笔记本做路由器共享4G流量
  2. pandas 筛选行 整行复制粘贴
  3. 理科生学计算机数字媒体方向,文科生,理科生,分别可以报哪些专业?5分钟了解文理报考大方向...
  4. centos7 安装 K8S 及启动 POD问题
  5. 为什么有些“业余”的能赢。
  6. 零基础带你Ubuntu20.04安装Rosbridge并操作测试小乌龟,手把手教学【超级详细】
  7. USIM卡与SIM的区别
  8. Docker一些使用问题的解决方法
  9. 全球及中国水解蚕丝蛋白行业研究及十四五规划分析报告
  10. 全球及中国丝蛋白行业研究及十四五规划分析报告