一、引言
上次分享一个下载微信公众号图片的Python程序,借助于扩展库requests和BeautifulSoup来实现。传送门:
上次文章中给出的程序能下载2021-2022年全国青少年电子信息智能创新大赛华北赛区(北京)晋级全国总决赛的名单(名单是放在图片中的)图片。由于同一系列还有11个赛项的复赛获奖名单,手动下载还得一次次修改代码,重复运行代码。这样会非常麻烦。我们希望能通过一次运行程序自动把晋级名单和获奖名单图片一起下载下来。今日就分享一个自动批量下载晋级名单和复赛获奖名单的Python程序。
环境:64位Win 10中文版 + 64位Python 3.6
《Python程序设计(基于计算思维和新文科建设)》,ISBN:9787121435577,胡凤国,电子工业出版社,2022年6月。本书是电子工业出版社在国内较早采用纸质版+电子版的创新图书发行模式的第一次尝试。本书是这套创新图书的纸质版部分,与之内容互补的电子版图书将稍后出版。基础篇介绍Python程序设计的入门知识,共12章,包括:⑵ Python软件的安装和Python程序运行;⑶ Python的基本概念(对象、数据类型、表达式、内置函数);排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:与本书内容互补的电子版图书包含文本篇和应用篇两部分:文本篇:介绍字符集、编码和文本文件读写的知识,包含了对国家规范《通用规范汉字表》8105个汉字当中难以输入和难以显示的汉字的处理。应用篇:介绍Word、Excel、PPT、PDF、图片等常用办公文件的处理,是大家提高办公和科研效率的好帮手。本书配套有详细的PPT和教学大纲,还有全部例题的程序代码和绝大部分思考题的程序代码。本书配套PPT里面还加入了配套电子版图书中的部分内容,比如字符集和编码,不同编码的文本文件的读写,Word、Excel、PPT、PDF等一些常用办公文件的读写。1、大学文科生, 可选本书当Python教材或自学Python的参考书。2、大学理工科学生, 可选本书当自学Python的参考书。可拿本书当工具书,本书的配套程序会为您节省效率,在当前大数据和新文科的背景下,本书可以为相关领域的量化研究提供技术支持。本书配套的电子版图书中的编码和文本处理知识也可以作为理工科教师和科研人员处理文本数据的参考资料之一,毕竟专门开辟章节介绍国家标准《通用规范汉字表》汉字处理的程序设计图书并不多见。
本书有专门的海龟画图章节,有大量的有趣数学题目,可以培养学生的计算思维,适合对编程感兴趣的中小学生阅读,也适合打算让娃参加编程辅导班的家长朋友参考。本书在各大实体书店和网店均有销售。京东、天猫、当当的购买渠道如下(可扫码直达购买页面)。
我们先手动打开早促会科普委发布的公众号文章:
《【复赛奖项公布】2021-2022年全国青少年电子信息智能创新大赛华北赛区(北京)》
该文章发布了2021-2022年全国青少年电子信息智能创新大赛华北赛区(北京)的晋级全国总决赛的名单,同时还发布了11项赛事的复赛获奖名单。
本号此前的文章只是下载了晋级决赛的选手名单图片,现在我们想连同获奖名单也一起下载下来。
思路一:手动获取12个页面的链接和名单类型,然后调用自定义的图片下载函数dowmload_pic_from_wx。

上述程序运行后,会生成一个文件夹图片下载,内含两个子文件夹:获奖名单 和 总决赛晋级名单。

后者存放的就是上次本号文章下载的70个图片文件,前者包含11个子文件夹,存放的是各赛项的复赛获奖名单。

上面程序中的网址全是手动获取的,总还是有些不方便。我们希望全自动的方法。
思路二:从早促会科普委发布的初始页面开始,自动获取12个页面的网址和名单类型,全自动下载图片。

在上面的程序中,我们的 get_urls 函数对读取到的HTML代码进行了分析,然后做了切片操作,这样做的目的是把重点集中到12个网页的网址和名单类型上。剩下的操作是用正则表达式操作把网址和名单类型提取出来,做成列表返回。
思路二下载到的图片同思路一完全一致。共计13个文件夹,382个名单图片。
如果家长朋友想帮孩子考察某些赛项哪些学校更强,以便在中考时参考,那么,本程序无疑是您的好帮手。
欢迎关注微信公众号“语和言”,本公众号将不定期发布对图书《Python程序设计(基于计算思维和新文科建设)》中的Python知识点进行解读和补充的内容。语和言公众号还有读者交流群,读者朋友可以入群一起讨论问题。
欢迎跟图书《Python程序设计(基于计算思维和新文科建设)》的作者胡凤国老师进行交流,作者电邮:cuchufengguo@163.com。
五、图书目录
图书《Python程序设计(基于计算思维和新文科建设)》目录如下:8.2.4 关于元素可比较的有序序列类对象的通用操作10.3.3 用上下文管理语句with来管理文本文件读写12.12.1 datetime标准库定义的常用类