当前位置: 首页 > 科技观察

Python爬取电子课本送给在家自习的孩子

时间:2023-03-14 19:46:33 科技观察

在抗击疫情的今天,中小学生也开始了在家上网课的生活。许多没有借过书的孩子不得不上网阅读电子教科书。一些电子教科书是教师发送的网络链接。今天我们利用python的爬虫功能,把网上链接的教材爬下来,然后做成PDF格式的本地文件,方便小朋友随时阅读。本文案例中爬取的在线教材如下图所示:图1电子教材首页分两部分实现:用python从网站上爬取所有教材图片;合并图片以生成PDF文件。具体过程:1.爬取课本图片爬虫4个过程:发送请求——获取网页——解析内容——保存内容。根据之前python批量爬取网络图片中提到的知识,网页上的图片都有单独的url。爬图片的时候需要先爬出图片url,然后根据图片url爬取图片。1、发起请求:首先找出合适的URL,因为是静态网页URL,我们可以直接使用浏览器地址栏中的URL,下图2红框内就是要使用的URL,只是复制它。图2浏览器地址栏中的URL可以用来发送请求。com/beishida/cz8x/ebook/1.htmlresponse=requests.get(url)3.解析response得到网页内容:soup=BeautifulSoup(response.content,'lxml')4.解析网页内容得到图片URL:jgp_url=soup.find('div',class_="center").find('a').find('img')['src']5.向图片URL发送访问请求,获取图片(因为url只有图片,不用find解析):jpg=requests.get(jgp_url).content6,保存图片:f=open(set_path()+number+'.jpg','wb')f.write(jpg)其中,set_path()是预先建立的存放图片的路径,看下面代码,或者直接写想要的路径:defset_path():path=r'e:/python/book'ifnotos.path.isdir(path):os.makedirs(path)paths=path+'/'return(paths)7.存在问题:上面完成了课本图片的爬取。我们打开文件夹,发现只下载了一张图片。没有任何。这是因为在浏览网页时,每个页面都有不同的URL。我们试着分析了一下,发现电子教材每一页的url都非常有规律:第1页URL:http://www.shuxue9.com/beishida/cz8x/ebook/1.html第2页:http://www.shuxue9.com/beishida/cz8x/ebook/2.html......pagen:http://www.shuxue9.com/beishida/cz8x/ebook/n.html每页图片网址为不同的和不规则的。我们可以用一个循环的方法,根据规律发起访问url,获取到图片后,会自动循环下一个url……最终获取到所有的图片。8、集合循环抽取:将以上所有过程合并成一个for循环。根据网页,我们可以看到一共有152页。设置好循环后,完整代码为:importrequests,osfrombs4importBeautifulSoupforiinrange(1,153):#Sendrequesturl="http://www.shuxue9.com/beishida/cz8x/ebook/{}".format(i)+"。html"response=requests.get(url)#获取网页soup=BeautifulSoup(response.content,'lxml')#解析网页获取图片urljgp_url=soup.find('div',class_="center").find('a').find('img')['src']#发送请求解析获取图片jpg=requests.get(jgp_url).content#设置图片保存路径p=r'e:/python-book'ifnotos.path.isdir(p):os.makedirs(p)#保存图像f=open(p+'/'+str(i)+'.jpg','wb')f.write(jpg)print("Downloadcomplete")运行程序,可以一次性下载所有课本图片,效果为:图3运行程序下载图片图4下载好的图片2.合并图片生成一个PDF文件。图片下载后,方便使用PDF格式的图片。网上有专门的软件,但是免费试用版只能合并几张图片。今天教大家一款免费常用的OFFICE-ppt软件,将多张图片合成一个PDF文件。新建一个空白的PowerPoint文件,点击插入——相册——新建相册,在弹出的窗口中,点击左上角的“文件/磁盘”,将刚才下载的图片全部导入。导入后的效果如右图红框样式所示,然后点击“创建”将文件另存为PDF格式。总结:至此,从网页中抓取电子教材图片并生成PDF格式的本地文件就全部完成了。其中,如何查找并提取网页中的图片URL,在本头条之前的文章中已有详细介绍。有问题可以咨询或留言交流。另一种从网页内容中查找图片网址的简便方法:在打开的开发者工具界面中,点击左上角的箭头符号,然后在网页中点击要查找网址的图片,图片所在的位置图片网址会自动高亮显示。如下: