日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Python爬取電子課本,送給居家上課的孩子們

在這個(gè)全民抗疫的日子,中小學(xué)生們也開(kāi)啟了居家上網(wǎng)課的生活。很多沒(méi)借到書的孩子,不得不在網(wǎng)上看電子課本,有的電子課本是老師發(fā)的網(wǎng)絡(luò)鏈接,每次打開(kāi)網(wǎng)頁(yè)去看,既費(fèi)流量,也不方便。今天我們就利用python的爬蟲功能,把網(wǎng)絡(luò)鏈接的課本爬下來(lái),再做成PDF格式的本地文件,讓孩子們隨時(shí)都能看。本文案例爬取的網(wǎng)絡(luò)課本見(jiàn)下圖: 

圖1 電子課本首頁(yè)

實(shí)現(xiàn)思路為兩部分:

  • 用python從網(wǎng)站爬取全部課本圖片;
  • 將圖片合并生成PDF格式文件。

具體過(guò)程:

一、爬取課本圖片

爬蟲4流程:發(fā)出請(qǐng)求——獲得網(wǎng)頁(yè)——解析內(nèi)容——保存內(nèi)容。

根據(jù)上篇python批量爬取網(wǎng)絡(luò)圖片里講過(guò)的知識(shí),網(wǎng)頁(yè)里的圖片有單獨(dú)的網(wǎng)址,爬取圖片時(shí)需要先爬取出圖片網(wǎng)址,再根據(jù)圖片網(wǎng)址爬取圖片。

1、發(fā)出請(qǐng)求:

首先找出合適的網(wǎng)址URL,因是靜態(tài)網(wǎng)頁(yè)網(wǎng)址,我們可直接用瀏覽器地址欄的網(wǎng)址,下圖2中紅框位置即為要用的網(wǎng)址,復(fù)制下來(lái)就行。 

圖2 瀏覽器地址欄網(wǎng)址可用于發(fā)出請(qǐng)求

網(wǎng)頁(yè)網(wǎng)址為:http://www.shuxue9.com/beishida/cz8x/ebook/1.html

2、發(fā)出請(qǐng)求獲得響應(yīng):

 
 
 
  1. url = http://www.shuxue9.com/beishida/cz8x/ebook/1.htmlresponse = requests.get(url) 

3、解析響應(yīng)獲得網(wǎng)頁(yè)內(nèi)容:

 
 
 
  1. soup = BeautifulSoup(response.content, 'lxml') 

4、解析網(wǎng)頁(yè)內(nèi)容,獲得圖片網(wǎng)址:

 
 
 
  1. jgp_url = soup.find('div', class_="center").find('a').find('img')['src'] 

5、向圖片網(wǎng)址發(fā)出訪問(wèn)請(qǐng)求,并獲得圖片(因?yàn)樵摼W(wǎng)址僅有圖片,不需用find解析):

 
 
 
  1. jpg = requests.get(jgp_url).content 

6、保存圖片:

 
 
 
  1. f = open(set_path() + number + '.jpg','wb')f.write(jpg) 

其中,set_path()是提前建好的用于存放圖片的路徑,代碼見(jiàn)下,也可直接寫上想用的路徑:

 
 
 
  1. def set_path():    path = r'e:/python/book'    if not  
  2. os.path.isdir(path):        os.makedirs(path)    paths = path+'/'    
  3.  return(paths) 

7、存在問(wèn)題:

以上就完成了課本圖片的爬取,我們打開(kāi)文件夾,發(fā)現(xiàn)只有一張圖片被下載了,后面的都沒(méi)。這是因?yàn)闉g覽網(wǎng)頁(yè)時(shí),每個(gè)頁(yè)面都有不同的網(wǎng)址,我們?cè)囍治鲆幌拢l(fā)現(xiàn)電子課本的每一頁(yè)網(wǎng)址很有規(guī)律:

  • 第1頁(yè)網(wǎng)址:http://www.shuxue9.com/beishida/cz8x/ebook/1.html
  • 第2頁(yè)網(wǎng)址:http://www.shuxue9.com/beishida/cz8x/ebook/2.html
  • ......
  • 第n頁(yè)網(wǎng)址:http://www.shuxue9.com/beishida/cz8x/ebook/n.html

每頁(yè)上的圖片網(wǎng)址各不相同,沒(méi)規(guī)律。我們可以根據(jù)規(guī)律用循環(huán)方式,對(duì)網(wǎng)址發(fā)起訪問(wèn),獲得圖片后,自動(dòng)循環(huán)訪問(wèn)下一個(gè)網(wǎng)址......最終獲得全部圖片。

8、設(shè)置循環(huán)提?。?/strong>

在以上全部過(guò)程納入到一個(gè)for循環(huán)里,根據(jù)網(wǎng)頁(yè),我們可以看到共有152頁(yè),設(shè)置循環(huán)后完整代碼為:

 
 
 
  1. import requests , osfrom bs4 import BeautifulSoupfor i in range(1,  
  2. 153):# 發(fā)出請(qǐng)求    url = "http://www.shuxue9.com/beishida/cz8x/ebook 
  3. /{}".format(i)+".html"    response = requests.get(url)# 獲得網(wǎng)頁(yè)    
  4.  soup = BeautifulSoup(response.content, 'lxml')# 解析網(wǎng)頁(yè)得到圖片網(wǎng)址 
  5.     jgp_url = soup.find('div', class_="center").find('a').find('img') 
  6. ['src']# 發(fā)出請(qǐng)求解析獲得圖片    jpg = requests.get(jgp_url).content#  
  7. 設(shè)置圖片保存路徑    p = r'e:/python-book'    if not os.path.isdir(p): 
  8.         os.makedirs(p)# 保存圖片    f = open(p + '/' + str(i) +  
  9. '.jpg', 'wb')    f.write(jpg)print("下載完成") 

運(yùn)行程序,即可一次下載全部課本圖片,效果為: 

圖3 運(yùn)行程序下載圖片

圖4 下載好的圖片

二、將圖片合并生成PDF格式文件

圖片下載完成后,將圖片生成PDF格式才方便使用。網(wǎng)上有專門的軟件,但免費(fèi)的試用版只能合并幾張圖片。今天教大家一個(gè)免費(fèi)且常用的OFFICE—ppt軟件來(lái)將多張圖片合并成一個(gè)PDF格式文件。

新建一個(gè)PowerPoint空白文件,點(diǎn)擊插入——相冊(cè)——新建相冊(cè), 

在彈出的窗體里,點(diǎn)擊左上角的“文件/磁盤”,將剛才下載的圖片全部導(dǎo)入進(jìn)去,導(dǎo)入后的效果如下圖右側(cè)紅框樣式,然后點(diǎn)擊“創(chuàng)建”,保存文件時(shí)另存為PDF格式即可。 

總結(jié):

至此,從網(wǎng)頁(yè)爬取電子課本圖片,生成PDF格式的本地文件就全部完成了。其中,如何找到并提取網(wǎng)頁(yè)中的圖片網(wǎng)址,在本頭條上一篇文章里已有詳述,有疑問(wèn)的可查閱或留言交流。

另分享一個(gè)從網(wǎng)頁(yè)內(nèi)容中找到圖片網(wǎng)址的簡(jiǎn)便方法:在打開(kāi)的開(kāi)發(fā)者工具界面,點(diǎn)擊左上角的箭頭符號(hào),然后在網(wǎng)頁(yè)上點(diǎn)擊想要查找網(wǎng)址的圖片,會(huì)自動(dòng)高亮顯示圖片網(wǎng)址所在位置。如下所示:


分享標(biāo)題:Python爬取電子課本,送給居家上課的孩子們
瀏覽地址:http://m.5511xx.com/article/djdhcii.html