python爬虫电子书推荐:送给居家上课的孩子们
在这个全民抗疫的日子,中小学生们也开启了居家上网课的生活。很多没借到书的孩子,不得不在网上看电子课本,有的电子课本是老师发的网络链接,每次打开网页去看,既费流量,也不方便。今天我们就利用python的爬虫功能,把网络链接的课本爬下来,再做成PDF格式的本地文件,让孩子们随时都能看。本文案例爬取的网络课本见下图:
图1 电子课本首页
实现思路为两部分:一、用python从网站爬取全部课本图片;
二、将图片合并生成PDF格式文件。
具体过程:
一、爬取课本图片爬虫4流程:发出请求——获得网页——解析内容——保存内容。
根据上篇里讲过的知识,网页里的图片有单独的网址,爬取图片时需要先爬取出图片网址,再根据图片网址爬取图片。
1、发出请求:
首先找出合适的网址URL,因是静态网页网址,我们可直接用浏览器地址栏的网址,下图2中红框位置即为要用的网址,复制下来就行。
图2 浏览器地址栏网址可用于发出请求
网页网址为:http://www.shuxue9.com/beishida/cz8x/ebook/1.html
2、发出请求获得响应:
url = http://www.shuxue9.com/beishida/cz8x/ebook/1.htmlresponse = requests.get(url)
3、解析响应获得网页内容:
soup = BeautifulSoup(response.content, 'lxml')
4、解析网页内容,获得图片网址:
jgp_url = soup.find('div', class_="center").find('a').find('img')['src']
5、向图片网址发出访问请求,并获得图片(因为该网址仅有图片,不需用find解析):
jpg = requests.get(jgp_url).content
6、保存图片:
f = open(set_path() number '.jpg','wb')f.write(jpg)
其中,set_path()是提前建好的用于存放图片的路径,代码见下,也可直接写上想用的路径:
def set_path(): path = r'e:/python/book' if not os.path.isdir(path): os.makedirs(path) paths = path '/' return(paths)
7、存在问题:
以上就完成了课本图片的爬取,我们打开文件夹,发现只有一张图片被下载了,后面的都没。这是因为浏览网页时,每个页面都有不同的网址,我们试着分析一下,发现电子课本的每一页网址很有规律:
第1页网址:http://www.shuxue9.com/beishida/cz8x/ebook/1.html
第2页网址:http://www.shuxue9.com/beishida/cz8x/ebook/2.html
......
第n页网址:http://www.shuxue9.com/beishida/cz8x/ebook/n.html
每页上的图片网址各不相同,没规律。我们可以根据规律用循环方式,对网址发起访问,获得图片后,自动循环访问下一个网址......最终获得全部图片。
8、设置循环提取:
在以上全部过程纳入到一个for循环里,根据网页,我们可以看到共有152页,设置循环后完整代码为:
import requests , osfrom bs4 import BeautifulSoupfor i in range(1, 153):# 发出请求 url = "http://www.shuxue9.com/beishida/cz8x/ebook/{}".format(i) ".html" response = requests.get(url)# 获得网页 soup = BeautifulSoup(response.content, 'lxml')# 解析网页得到图片网址 jgp_url = soup.find('div', class_="center").find('a').find('img')['src']# 发出请求解析获得图片 jpg = requests.get(jgp_url).content# 设置图片保存路径 p = r'e:/python-book' if not os.path.isdir(p): os.makedirs(p)# 保存图片 f = open(p '/' str(i) '.jpg', 'wb') f.write(jpg)print("下载完成")
运行程序,即可一次下载全部课本图片,效果为:
图3 运行程序下载图片
图4 下载好的图片
二、将图片合并生成PDF格式文件
图片下载完成后,将图片生成PDF格式才方便使用。网上有专门的软件,但免费的试用版只能合并几张图片。今天教大家一个免费且常用的OFFICE—ppt软件来将多张图片合并成一个PDF格式文件。
新建一个PowerPoint空白文件,点击插入——相册——新建相册,
在弹出的窗体里,点击左上角的“文件/磁盘”,将刚才下载的图片全部导入进去,导入后的效果如下图右侧红框样式,然后点击“创建”,保存文件时另存为PDF格式即可。
至此,从网页爬取电子课本图片,生成PDF格式的本地文件就全部完成了。其中,如何找到并提取网页中的图片网址,在本头条上一篇文章里已有详述,有疑问的可查阅或留言交流。
另分享一个从网页内容中找到图片网址的简便方法:在打开的开发者工具界面,点击左上角的箭头符号,然后在网页上点击想要查找网址的图片,会自动高亮显示图片网址所在位置。如下所示:
- 01-07全屏背景图街景 街景背景图,超级舒适
- 05-30草原上升起不落的太阳c调伴奏视频,魏松-草原上升起不落的太阳
- 03-03怎么批量删除文件名中重复的部分?如何批量删除文件名中相同文字
- 06-21石头诗原创现代诗,原创诗歌:倔强的石头
- 01-12毕业生的幸福原来如此简单:毕业季,在二中的那些年
- 04-07一眼分辨真假青金石方法很简单:青金石知识分享长文
- 01-30猫咪护食有哪些 行为特征?猫咪护食该怎么办原因简单
- 06-19小故事儿童简短小猴子 益智小故事一小猴子的智慧冒险
- 04-05二氧化碳对金属有腐蚀性吗?为什么水中的二氧化碳会对碳钢产生腐蚀
- 02-04考研英语必备词汇多少个:这么重要的词汇你记住了吗
- 10-27巴赫无伴奏组曲 如果没有卡萨尔斯的发现
- 12-01苹果手机nfc支持哪些功能?苹果手机NFC功能介绍
- 03-08精油的萃取压榨法:精油如何萃取
- 12-30做期货为什么不成功?为什么做期货难
- 04-18美好生活总是需要自己来记录:美好生活,源于讲究不将就
- 05-03任天堂switch游戏机上要注意什么?小心温差导致Switch游戏机结露
热门
推荐
- 1勤俭节约周记481
- 2社区庆端午活动方案450
- 3初中数学教师自我介绍499
- 4精选给恋人的情人节祝福语微信锦集58条404
- 5大学生毕业的自我鉴定范文308
- 6益生菌什么时候吃最好,乳酸菌是益生菌吗440
- 7春江花月夜读后感200字读春江花月夜有感217
- 8注册成立一般公司的流程是怎样的233