亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

抓取網(wǎng)頁(yè)生成電子書(shū)

抓取網(wǎng)頁(yè)生成電子書(shū)

抓取網(wǎng)頁(yè)生成電子書(shū)(是不是有時(shí)星球內容太多刷不過(guò)來(lái)?想把星球精華內容擼下來(lái))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-01-14 07:01 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(是不是有時(shí)星球內容太多刷不過(guò)來(lái)?想把星球精華內容擼下來(lái))
  是不是有時(shí)候地球上的內容太多無(wú)法刷新?你想制作一本收錄地球本質(zhì)的電子書(shū)嗎?
  本文將帶你實(shí)現使用Python爬取星球內容,制作PDF電子書(shū)。
  第一個(gè)效果:
  
  內容以?xún)?yōu)化為主,主要優(yōu)化內容在于翻頁(yè)時(shí)間的處理、大空白的處理、評論的抓取、超鏈接的處理。
  說(shuō)到隱私問(wèn)題,這里我們以自由星球“萬(wàn)人學(xué)習分享群”為爬取對象。
  過(guò)程分析模擬登錄
  爬行是知識星球的網(wǎng)絡(luò )版本。
  這個(gè)網(wǎng)站不依賴(lài)cookie來(lái)判斷你是否登錄,而是請求頭中的Authorization字段。
  因此,您需要將 Authorization 和 User-Agent 替換為您自己的。(注意User-Agent也應該換成你自己的)
  一般來(lái)說(shuō),星球使用微信掃碼登錄后,可以獲得一個(gè)Authorization。這首歌長(cháng)期有效。無(wú)論如何,它真的很長(cháng)。
  1
2
3
4
5
6
7
8
9
  headers = {
'Authorization': 'C08AEDBB-A627-F9F1-1223-7E212B1C9D7D',
'x-request-id': "7b898dff-e40f-578e-6cfd-9687a3a32e49",
'accept': "application/json, text/plain, */*",
'host': "api.zsxq.com",
'connection': "keep-alive",
'referer': "https://wx.zsxq.com/dweb/",
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
}
  頁(yè)面內容分析
  登錄成功后,我一般使用右鍵,查看或者查看源碼。
  但是這個(gè)頁(yè)面比較特殊,它并沒(méi)有把內容放到當前地址欄的URL下面,而是異步加載(XHR),只要你找到合適的界面。
  精華區界面:
  這個(gè)界面是最新的20條數據,后面的數據對應不同的界面,就是后面要說(shuō)的翻頁(yè)。
  創(chuàng )建 PDF 電子書(shū)
  需要安裝的模塊:
  wkhtmltopdf 用于導出 PDF。安裝后可以使用命令生成PDF,例如:wkhtmltopdf google.pdfpdfkit,它是python對wkhtmltopdf調用的封裝,支持URL、本地文件、文本內容到PDF的轉換,實(shí)際轉換還是最終調用wkhtmltopdf命令
  本來(lái),精華區是沒(méi)有稱(chēng)號的。我用每個(gè)問(wèn)題的前 6 個(gè)字符作為標題來(lái)區分不同的問(wèn)題。
  抓取圖片
  很明顯,返回數據中的images key就是圖片,只需要提取大的、高清的url即可。
  關(guān)鍵是將圖像標簽 img 插入到 HTML 文檔中。我使用 BeautifulSoup 操作 DOM 的方式。
  需要注意的是,圖片可能不止一張,所以需要使用for循環(huán)來(lái)遍歷所有的圖片。
  1
2
3
4
5
6
7
8
  if content.get('images'):
soup = BeautifulSoup(html_template, 'html.parser')
for img in content.get('images'):
url = img.get('large').get('url')
img_tag = soup.new_tag('img', src=url)
soup.body.append(img_tag)
html_img = str(soup)
html = html_img.format(title=title, text=text)
  制作精美的 PDF
  通過(guò)css樣式控制字體大小、布局、顏色等,詳見(jiàn)test.css文件。
  然后將此文件導入選項字段。
  1
2
3
4
  options = {
"user-style-sheet": "test.css",
...
}
  難度分析翻頁(yè)邏輯
  爬取地址為:{url}?scope=digests&count=20&end_time=2018-04-12T15%3A49%3A13.443%2B0800
  路徑后面的 end_time 表示最后一次加載帖子以實(shí)現翻頁(yè)的日期。
  end_time 是 url 轉義的,可以通過(guò) urllib.parse.quote 方法進(jìn)行轉義。關(guān)鍵是要找出 end_time 的來(lái)源。
  仔細觀(guān)察后發(fā)現,每個(gè)請求返回20個(gè)post,最后一個(gè)post與下一個(gè)鏈接的end_time有關(guān)。
  比如上一個(gè)帖子的create_time是2018-01-10T11:49:39.668+0800,那么下一個(gè)鏈接的end_time是2018-01-10T11:49:39. 667+0800,注意一個(gè)668和一個(gè)667是不一樣的,所以我們得到end_time的公式:
  1
  end_time = create_time[:20]+str(int(create_time[20:23])-1)+create_time[23:]
  但事情并沒(méi)有那么簡(jiǎn)單,因為最后的create_time可能是2018-03-06T22%3A29%3A59.000%2B0800,-1后面出現一個(gè)負數!
  由于0可能出現在時(shí)分秒中,看來(lái)最好的方法是使用時(shí)間模塊datetime獲取create_time的最后一秒,如果出現000則拼接999。
  1
2
3
4
5
6
7
8
9
10
  # int -1 后需要進(jìn)行補 0 處理,test_str.zfill(3)
end_time = create_time[:20]+str(int(create_time[20:23])-1).zfill(3)+create_time[23:]
# 時(shí)間出現整點(diǎn)時(shí)需要特殊處理,否則會(huì )出現 -1
if create_time[20:23] == '000':
temp_time = datetime.datetime.strptime(create_time, "%Y-%m-%dT%H:%M:%S.%f+0800")
temp_time += datetime.timedelta(seconds=-1)
end_time = temp_time.strftime("%Y-%m-%dT%H:%M:%S") + '.999+0800'
end_time = quote(end_time)
next_url = start_url + '&end_time=' + end_time
  處理過(guò)程有點(diǎn)冗長(cháng)。原諒我落后的000。我沒(méi)有找到直接的方法來(lái)處理它。我只能通過(guò)這條曲線(xiàn)拯救國家。
  判斷最后一頁(yè)
  翻頁(yè)返回的數據為:
  1
  {"succeeded":true,"resp_data":{"topics":[]}}
  因此,使用 next_page = rsp.json().get('resp_data').get('topics') 來(lái)判斷是否有下一頁(yè)。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(是不是有時(shí)星球內容太多刷不過(guò)來(lái)?想把星球精華內容擼下來(lái))
  是不是有時(shí)候地球上的內容太多無(wú)法刷新?你想制作一本收錄地球本質(zhì)的電子書(shū)嗎?
  本文將帶你實(shí)現使用Python爬取星球內容,制作PDF電子書(shū)。
  第一個(gè)效果:
  
  內容以?xún)?yōu)化為主,主要優(yōu)化內容在于翻頁(yè)時(shí)間的處理、大空白的處理、評論的抓取、超鏈接的處理。
  說(shuō)到隱私問(wèn)題,這里我們以自由星球“萬(wàn)人學(xué)習分享群”為爬取對象。
  過(guò)程分析模擬登錄
  爬行是知識星球的網(wǎng)絡(luò )版本。
  這個(gè)網(wǎng)站不依賴(lài)cookie來(lái)判斷你是否登錄,而是請求頭中的Authorization字段。
  因此,您需要將 Authorization 和 User-Agent 替換為您自己的。(注意User-Agent也應該換成你自己的)
  一般來(lái)說(shuō),星球使用微信掃碼登錄后,可以獲得一個(gè)Authorization。這首歌長(cháng)期有效。無(wú)論如何,它真的很長(cháng)。
  1
2
3
4
5
6
7
8
9
  headers = {
'Authorization': 'C08AEDBB-A627-F9F1-1223-7E212B1C9D7D',
'x-request-id': "7b898dff-e40f-578e-6cfd-9687a3a32e49",
'accept': "application/json, text/plain, */*",
'host': "api.zsxq.com",
'connection': "keep-alive",
'referer': "https://wx.zsxq.com/dweb/",
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
}
  頁(yè)面內容分析
  登錄成功后,我一般使用右鍵,查看或者查看源碼。
  但是這個(gè)頁(yè)面比較特殊,它并沒(méi)有把內容放到當前地址欄的URL下面,而是異步加載(XHR),只要你找到合適的界面。
  精華區界面:
  這個(gè)界面是最新的20條數據,后面的數據對應不同的界面,就是后面要說(shuō)的翻頁(yè)。
  創(chuàng )建 PDF 電子書(shū)
  需要安裝的模塊:
  wkhtmltopdf 用于導出 PDF。安裝后可以使用命令生成PDF,例如:wkhtmltopdf google.pdfpdfkit,它是python對wkhtmltopdf調用的封裝,支持URL、本地文件、文本內容到PDF的轉換,實(shí)際轉換還是最終調用wkhtmltopdf命令
  本來(lái),精華區是沒(méi)有稱(chēng)號的。我用每個(gè)問(wèn)題的前 6 個(gè)字符作為標題來(lái)區分不同的問(wèn)題。
  抓取圖片
  很明顯,返回數據中的images key就是圖片,只需要提取大的、高清的url即可。
  關(guān)鍵是將圖像標簽 img 插入到 HTML 文檔中。我使用 BeautifulSoup 操作 DOM 的方式。
  需要注意的是,圖片可能不止一張,所以需要使用for循環(huán)來(lái)遍歷所有的圖片。
  1
2
3
4
5
6
7
8
  if content.get('images'):
soup = BeautifulSoup(html_template, 'html.parser')
for img in content.get('images'):
url = img.get('large').get('url')
img_tag = soup.new_tag('img', src=url)
soup.body.append(img_tag)
html_img = str(soup)
html = html_img.format(title=title, text=text)
  制作精美的 PDF
  通過(guò)css樣式控制字體大小、布局、顏色等,詳見(jiàn)test.css文件。
  然后將此文件導入選項字段。
  1
2
3
4
  options = {
"user-style-sheet": "test.css",
...
}
  難度分析翻頁(yè)邏輯
  爬取地址為:{url}?scope=digests&count=20&end_time=2018-04-12T15%3A49%3A13.443%2B0800
  路徑后面的 end_time 表示最后一次加載帖子以實(shí)現翻頁(yè)的日期。
  end_time 是 url 轉義的,可以通過(guò) urllib.parse.quote 方法進(jìn)行轉義。關(guān)鍵是要找出 end_time 的來(lái)源。
  仔細觀(guān)察后發(fā)現,每個(gè)請求返回20個(gè)post,最后一個(gè)post與下一個(gè)鏈接的end_time有關(guān)。
  比如上一個(gè)帖子的create_time是2018-01-10T11:49:39.668+0800,那么下一個(gè)鏈接的end_time是2018-01-10T11:49:39. 667+0800,注意一個(gè)668和一個(gè)667是不一樣的,所以我們得到end_time的公式:
  1
  end_time = create_time[:20]+str(int(create_time[20:23])-1)+create_time[23:]
  但事情并沒(méi)有那么簡(jiǎn)單,因為最后的create_time可能是2018-03-06T22%3A29%3A59.000%2B0800,-1后面出現一個(gè)負數!
  由于0可能出現在時(shí)分秒中,看來(lái)最好的方法是使用時(shí)間模塊datetime獲取create_time的最后一秒,如果出現000則拼接999。
  1
2
3
4
5
6
7
8
9
10
  # int -1 后需要進(jìn)行補 0 處理,test_str.zfill(3)
end_time = create_time[:20]+str(int(create_time[20:23])-1).zfill(3)+create_time[23:]
# 時(shí)間出現整點(diǎn)時(shí)需要特殊處理,否則會(huì )出現 -1
if create_time[20:23] == '000':
temp_time = datetime.datetime.strptime(create_time, "%Y-%m-%dT%H:%M:%S.%f+0800")
temp_time += datetime.timedelta(seconds=-1)
end_time = temp_time.strftime("%Y-%m-%dT%H:%M:%S") + '.999+0800'
end_time = quote(end_time)
next_url = start_url + '&end_time=' + end_time
  處理過(guò)程有點(diǎn)冗長(cháng)。原諒我落后的000。我沒(méi)有找到直接的方法來(lái)處理它。我只能通過(guò)這條曲線(xiàn)拯救國家。
  判斷最后一頁(yè)
  翻頁(yè)返回的數據為:
  1
  {"succeeded":true,"resp_data":{"topics":[]}}
  因此,使用 next_page = rsp.json().get('resp_data').get('topics') 來(lái)判斷是否有下一頁(yè)。

抓取網(wǎng)頁(yè)生成電子書(shū)(本文實(shí)例講述Python實(shí)現抓取網(wǎng)頁(yè)生成Excel文件的方法。)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 99 次瀏覽 ? 2022-01-09 21:20 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(本文實(shí)例講述Python實(shí)現抓取網(wǎng)頁(yè)生成Excel文件的方法。)
  本文中的示例描述了 Python 如何實(shí)現爬取網(wǎng)頁(yè)以生成 Excel 文件。分享給大家,供大家參考,如下:
  Python抓取網(wǎng)頁(yè),主要使用PyQuery,和jQuery一樣,超級強大
  示例代碼如下:
   #-*- encoding:utf-8 -*- import sys import locale import string import traceback import datetime import urllib2 from pyquery import PyQuery as pq # 確定運行環(huán)境的encoding reload(sys); sys.setdefaultencoding('utf8'); f = open('gongsi.csv', 'w'); for i in range(1,24): d = pq(url="http://www.yourwebname.com/%3F ... 3B%25(i)); itemsa=d('dl dt a') #取title元素 itemsb=d('dl dd') #取title元素 for j in range(0,len(itemsa)): f.write("%s,\"%s\"\n"%(itemsa[j].get('title'),itemsb[j*2].text)); #end for #end for f.close();
  接下來(lái)就是用Notepad++打開(kāi)gongsi.csv,然后[emailprotected]~Codewang把它轉成ANSI編碼格式保存。然后用Excel軟件打開(kāi)csv文件,保存為Excel文件
  對更多Python相關(guān)內容感興趣的讀者可以查看本站專(zhuān)題:《Python中Excel表格技巧總結》、《Python文件和目錄操作技巧總結》、《Python文本文件操作總結》 《技能》、《Python數據》《結構與算法教程》、《Python函數技巧總結》、《Python字符串操作技巧總結》和《Python入門(mén)與進(jìn)階經(jīng)典教程》
  希望這篇文章對你的 Python 編程有所幫助。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(本文實(shí)例講述Python實(shí)現抓取網(wǎng)頁(yè)生成Excel文件的方法。)
  本文中的示例描述了 Python 如何實(shí)現爬取網(wǎng)頁(yè)以生成 Excel 文件。分享給大家,供大家參考,如下:
  Python抓取網(wǎng)頁(yè),主要使用PyQuery,和jQuery一樣,超級強大
  示例代碼如下:
   #-*- encoding:utf-8 -*- import sys import locale import string import traceback import datetime import urllib2 from pyquery import PyQuery as pq # 確定運行環(huán)境的encoding reload(sys); sys.setdefaultencoding('utf8'); f = open('gongsi.csv', 'w'); for i in range(1,24): d = pq(url="http://www.yourwebname.com/%3F ... 3B%25(i)); itemsa=d('dl dt a') #取title元素 itemsb=d('dl dd') #取title元素 for j in range(0,len(itemsa)): f.write("%s,\"%s\"\n"%(itemsa[j].get('title'),itemsb[j*2].text)); #end for #end for f.close();
  接下來(lái)就是用Notepad++打開(kāi)gongsi.csv,然后[emailprotected]~Codewang把它轉成ANSI編碼格式保存。然后用Excel軟件打開(kāi)csv文件,保存為Excel文件
  對更多Python相關(guān)內容感興趣的讀者可以查看本站專(zhuān)題:《Python中Excel表格技巧總結》、《Python文件和目錄操作技巧總結》、《Python文本文件操作總結》 《技能》、《Python數據》《結構與算法教程》、《Python函數技巧總結》、《Python字符串操作技巧總結》和《Python入門(mén)與進(jìn)階經(jīng)典教程》
  希望這篇文章對你的 Python 編程有所幫助。

抓取網(wǎng)頁(yè)生成電子書(shū)(這款軟件功能軟件自動(dòng)更新本軟件集成了新版本自動(dòng)更新功能)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 95 次瀏覽 ? 2022-01-09 21:16 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(這款軟件功能軟件自動(dòng)更新本軟件集成了新版本自動(dòng)更新功能)
  mp4到ebookpk官網(wǎng)獲取VIP閱讀(下載)傭金。有需要的用戶(hù)千萬(wàn)不要錯過(guò)這款實(shí)用又強大的電子書(shū)創(chuàng )作工具。
  
  軟件功能
  自動(dòng)軟件更新
  本軟件集成了新版本的自動(dòng)更新功能,幫助用戶(hù)在第一時(shí)間獲得全新體驗。
  在線(xiàn)采集圖書(shū)內容,只要輸入門(mén)戶(hù)網(wǎng)址和網(wǎng)址過(guò)濾器,即可在本地獲取網(wǎng)頁(yè)內容,成為名副其實(shí)的“網(wǎng)絡(luò )印刷機”和“網(wǎng)絡(luò )刮刀”
  可以將chm、jar、umd、doc、txt、html等文件拖入ebookpk作為書(shū)籍內容的來(lái)源。同時(shí)是標準的mobi、azw3、chm、umd、jar、doc“反編譯器”和“文件合并器”。
  書(shū)稿可以保存(.pk項目文件)
  可以制作帶有書(shū)簽(目錄)的PDF文檔,可以將word轉換為PDF;可以將pdf導入ebookpk軟件;支持虛擬打印機,任何可打印的文檔都可以轉換為PDF 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(這款軟件功能軟件自動(dòng)更新本軟件集成了新版本自動(dòng)更新功能)
  mp4到ebookpk官網(wǎng)獲取VIP閱讀(下載)傭金。有需要的用戶(hù)千萬(wàn)不要錯過(guò)這款實(shí)用又強大的電子書(shū)創(chuàng )作工具。
  
  軟件功能
  自動(dòng)軟件更新
  本軟件集成了新版本的自動(dòng)更新功能,幫助用戶(hù)在第一時(shí)間獲得全新體驗。
  在線(xiàn)采集圖書(shū)內容,只要輸入門(mén)戶(hù)網(wǎng)址和網(wǎng)址過(guò)濾器,即可在本地獲取網(wǎng)頁(yè)內容,成為名副其實(shí)的“網(wǎng)絡(luò )印刷機”和“網(wǎng)絡(luò )刮刀”
  可以將chm、jar、umd、doc、txt、html等文件拖入ebookpk作為書(shū)籍內容的來(lái)源。同時(shí)是標準的mobi、azw3、chm、umd、jar、doc“反編譯器”和“文件合并器”。
  書(shū)稿可以保存(.pk項目文件)
  可以制作帶有書(shū)簽(目錄)的PDF文檔,可以將word轉換為PDF;可以將pdf導入ebookpk軟件;支持虛擬打印機,任何可打印的文檔都可以轉換為PDF

抓取網(wǎng)頁(yè)生成電子書(shū)(完美者()網(wǎng)站對功能性板塊進(jìn)行擴充,以期獨門(mén)技巧)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-01-07 23:01 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(完美者()網(wǎng)站對功能性板塊進(jìn)行擴充,以期獨門(mén)技巧)
  Perfect()網(wǎng)站基于軟件下載,網(wǎng)站修訂版擴展了功能部分,以解決用戶(hù)在使用軟件過(guò)程中遇到的所有問(wèn)題。網(wǎng)站 新增“軟件百科”、“溫馨提示”等頻道,更好地為用戶(hù)提供更專(zhuān)業(yè)的軟件使用全周期服務(wù)。
  
  ibookBox 網(wǎng)絡(luò )小說(shuō)批量下載閱讀器是一款快速抓取各種大小的網(wǎng)絡(luò )小說(shuō)網(wǎng)站,并將整本書(shū)以txt格式生成到本地電腦,同時(shí)保存在郵箱和手機中的工具。ibookBox 可以完整地存儲整個(gè)網(wǎng)頁(yè)的所有信息,并存儲在用戶(hù)的郵箱中。IbookBox 還可以生成 HTML 文件和完整的網(wǎng)頁(yè)快照。與某些軟件不同,它只能抓取可見(jiàn)區域內的照片。使用IbookBox網(wǎng)絡(luò )小說(shuō)批量下載閱讀器時(shí),只需在地址欄輸入網(wǎng)址,點(diǎn)擊告訴搜索小說(shuō),即可輕松下載瀏覽小說(shuō)。IbookBox 支持批量抓取電子書(shū),讓用戶(hù)可以在互聯(lián)網(wǎng)的任何網(wǎng)頁(yè)上看到喜歡的小說(shuō)。, 可以直接批量抓取,生成完整的txt文件供用戶(hù)本地閱讀或手機隨意閱讀。抓取過(guò)程中,如果中途中斷,可以點(diǎn)擊“上次抓取小說(shuō)按鈕”,支持在章節網(wǎng)頁(yè)直接按右鍵直接抓取任務(wù)面板。也可以在主程序中輸入小說(shuō)章節頁(yè)的地址進(jìn)行抓取。
  “技巧與妙計”欄目是全網(wǎng)軟件使用技巧的合集或軟件使用過(guò)程中各種問(wèn)題的解答。文章,專(zhuān)欄成立伊始,編輯歡迎各位軟件大神朋友積極投稿。該平臺分享每個(gè)人的獨特技能。
  本站文章素材來(lái)源于網(wǎng)絡(luò ),文章作者姓名大部分缺失。為了讓用戶(hù)更容易閱讀和使用,它們已根據需要進(jìn)行了重新格式化和部分調整。本站收錄文章僅用于幫助用戶(hù)解決實(shí)際問(wèn)題。如有版權問(wèn)題,請聯(lián)系編輯修改或刪除,謝謝合作。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(完美者()網(wǎng)站對功能性板塊進(jìn)行擴充,以期獨門(mén)技巧)
  Perfect()網(wǎng)站基于軟件下載,網(wǎng)站修訂版擴展了功能部分,以解決用戶(hù)在使用軟件過(guò)程中遇到的所有問(wèn)題。網(wǎng)站 新增“軟件百科”、“溫馨提示”等頻道,更好地為用戶(hù)提供更專(zhuān)業(yè)的軟件使用全周期服務(wù)。
  
  ibookBox 網(wǎng)絡(luò )小說(shuō)批量下載閱讀器是一款快速抓取各種大小的網(wǎng)絡(luò )小說(shuō)網(wǎng)站,并將整本書(shū)以txt格式生成到本地電腦,同時(shí)保存在郵箱和手機中的工具。ibookBox 可以完整地存儲整個(gè)網(wǎng)頁(yè)的所有信息,并存儲在用戶(hù)的郵箱中。IbookBox 還可以生成 HTML 文件和完整的網(wǎng)頁(yè)快照。與某些軟件不同,它只能抓取可見(jiàn)區域內的照片。使用IbookBox網(wǎng)絡(luò )小說(shuō)批量下載閱讀器時(shí),只需在地址欄輸入網(wǎng)址,點(diǎn)擊告訴搜索小說(shuō),即可輕松下載瀏覽小說(shuō)。IbookBox 支持批量抓取電子書(shū),讓用戶(hù)可以在互聯(lián)網(wǎng)的任何網(wǎng)頁(yè)上看到喜歡的小說(shuō)。, 可以直接批量抓取,生成完整的txt文件供用戶(hù)本地閱讀或手機隨意閱讀。抓取過(guò)程中,如果中途中斷,可以點(diǎn)擊“上次抓取小說(shuō)按鈕”,支持在章節網(wǎng)頁(yè)直接按右鍵直接抓取任務(wù)面板。也可以在主程序中輸入小說(shuō)章節頁(yè)的地址進(jìn)行抓取。
  “技巧與妙計”欄目是全網(wǎng)軟件使用技巧的合集或軟件使用過(guò)程中各種問(wèn)題的解答。文章,專(zhuān)欄成立伊始,編輯歡迎各位軟件大神朋友積極投稿。該平臺分享每個(gè)人的獨特技能。
  本站文章素材來(lái)源于網(wǎng)絡(luò ),文章作者姓名大部分缺失。為了讓用戶(hù)更容易閱讀和使用,它們已根據需要進(jìn)行了重新格式化和部分調整。本站收錄文章僅用于幫助用戶(hù)解決實(shí)際問(wèn)題。如有版權問(wèn)題,請聯(lián)系編輯修改或刪除,謝謝合作。

抓取網(wǎng)頁(yè)生成電子書(shū)(繼續并發(fā)專(zhuān)題~FutureTask有點(diǎn)類(lèi)似Runnable的get方法支持阻塞)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2022-01-06 23:11 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(繼續并發(fā)專(zhuān)題~FutureTask有點(diǎn)類(lèi)似Runnable的get方法支持阻塞)
  繼續并發(fā)話(huà)題~
  FutureTask有點(diǎn)類(lèi)似于Runnable,可以由Thread啟動(dòng),但是FutureTask執行后可以返回數據,FutureTask的get方法支持阻塞。
  因為:FutureTask可以返回已經(jīng)執行過(guò)的數據,而FutureTask的get方法支持阻塞這兩個(gè)特性,我們可以用它來(lái)預加載一些可能會(huì )用到的資源,然后調用get方法來(lái)獲取想使用它(如果資源已加載,則直接返回;否則,繼續等待其加載完成)。
  下面舉兩個(gè)例子來(lái)介紹:
  1、使用FutureTask預加載以后要用到的數據。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask來(lái)提前加載稍后要用到的數據
*
* @author zhy
*
*/
public class PreLoaderUseFutureTask
{
/**
* 創(chuàng )建一個(gè)FutureTask用來(lái)加載資源
*/
private final FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
Thread.sleep(3000);
return "加載資源需要3秒";
}
});
public final Thread thread = new Thread(futureTask);
public void start()
{
thread.start();
}
/**
* 獲取資源
*
* @return
* @throws ExecutionException
* @throws InterruptedException
*/
public String getRes() throws InterruptedException, ExecutionException
{
return futureTask.get();//加載完畢直接返回,否則等待加載完畢
}
public static void main(String[] args) throws InterruptedException, ExecutionException
{
PreLoaderUseFutureTask task = new PreLoaderUseFutureTask();
/**
* 開(kāi)啟預加載資源
*/
task.start();
// 用戶(hù)在真正需要加載資源前進(jìn)行了其他操作了2秒
Thread.sleep(2000);
/**
* 獲取資源
*/
System.out.println(System.currentTimeMillis() + ":開(kāi)始加載資源");
String res = task.getRes();
System.out.println(res);
System.out.println(System.currentTimeMillis() + ":加載資源結束");
}
}
  操作結果:
  1400902789275:開(kāi)始加載資源
加載資源需要3秒
1400902790275:加載資源結束
  可以看到,原來(lái)加載資源需要3秒,現在只需要1秒。如果用戶(hù)執行其他操作的時(shí)間較長(cháng),可以直接返回,大大增加了用戶(hù)體驗。
  2、看看Future的API
  
  可以看到 Future 的 API 還是比較簡(jiǎn)單的??疵志椭酪馑剂?,get(long,TimeUnit)還是可以支持的,設置最大等待時(shí)間,如操作時(shí)間過(guò)長(cháng),可以取消。
  3、FutureTask模擬,預加載功能供用戶(hù)在線(xiàn)觀(guān)看電子書(shū)
  當用戶(hù)觀(guān)看當前頁(yè)面時(shí),后臺會(huì )提前加載下一頁(yè),可以大大提升用戶(hù)體驗。無(wú)需等待每個(gè)頁(yè)面加載。用戶(hù)會(huì )覺(jué)得這個(gè)電子書(shū)軟件很流暢。真的很棒。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask模擬預加載下一頁(yè)圖書(shū)的內容
*
* @author zhy
*
*/
public class BookInstance
{
/**
* 當前的頁(yè)碼
*/
private volatile int currentPage = 1;
/**
* 異步的任務(wù)獲取當前頁(yè)的內容
*/
FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
});
/**
* 實(shí)例化一本書(shū),并傳入當前讀到的頁(yè)碼
*
* @param currentPage
*/
public BookInstance(int currentPage)
{
this.currentPage = currentPage;
/**
* 直接啟動(dòng)線(xiàn)程獲取當前頁(yè)碼內容
*/
Thread thread = new Thread(futureTask);
thread.start();
}
/**
* 獲取當前頁(yè)的內容
*
* @return
* @throws InterruptedException
* @throws ExecutionException
*/
public String getCurrentPageContent() throws InterruptedException,
ExecutionException
{
String con = futureTask.get();
this.currentPage = currentPage + 1;
Thread thread = new Thread(futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
}));
thread.start();
return con;
}
/**
* 根據頁(yè)碼從網(wǎng)絡(luò )抓取數據
*
* @return
* @throws InterruptedException
*/
private String loadDataFromNet() throws InterruptedException
{
Thread.sleep(1000);
return "Page " + this.currentPage + " : the content ....";
}
public static void main(String[] args) throws InterruptedException,
ExecutionException
{
BookInstance instance = new BookInstance(1);
for (int i = 0; i < 10; i++)
{
long start = System.currentTimeMillis();
String content = instance.getCurrentPageContent();
System.out.println("[1秒閱讀時(shí)間]read:" + content);
Thread.sleep(1000);
System.out.println(System.currentTimeMillis() - start);
}
}
}
  輸出結果:
  [1秒閱讀時(shí)間]read:Page 1 : the content ....
2001
[1秒閱讀時(shí)間]read:Page 2 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 3 : the content ....
1001
[1秒閱讀時(shí)間]read:Page 4 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 5 : the content ....
1001
  可以看到,除了第一次查看當前頁(yè)面時(shí)等待網(wǎng)絡(luò )加載數據的過(guò)程(輸出:2001,1000是加載時(shí)間,1000是用戶(hù)閱讀時(shí)間),接下來(lái)的頁(yè)面是全部瞬間返回(輸出1000是用戶(hù)閱讀時(shí)間),完全不需要等待。
  代碼是為了說(shuō)明FutureTask的應用場(chǎng)景,請勿直接在項目中使用。
  好了,就這樣了,歡迎大家留言。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(繼續并發(fā)專(zhuān)題~FutureTask有點(diǎn)類(lèi)似Runnable的get方法支持阻塞)
  繼續并發(fā)話(huà)題~
  FutureTask有點(diǎn)類(lèi)似于Runnable,可以由Thread啟動(dòng),但是FutureTask執行后可以返回數據,FutureTask的get方法支持阻塞。
  因為:FutureTask可以返回已經(jīng)執行過(guò)的數據,而FutureTask的get方法支持阻塞這兩個(gè)特性,我們可以用它來(lái)預加載一些可能會(huì )用到的資源,然后調用get方法來(lái)獲取想使用它(如果資源已加載,則直接返回;否則,繼續等待其加載完成)。
  下面舉兩個(gè)例子來(lái)介紹:
  1、使用FutureTask預加載以后要用到的數據。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask來(lái)提前加載稍后要用到的數據
*
* @author zhy
*
*/
public class PreLoaderUseFutureTask
{
/**
* 創(chuàng )建一個(gè)FutureTask用來(lái)加載資源
*/
private final FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
Thread.sleep(3000);
return "加載資源需要3秒";
}
});
public final Thread thread = new Thread(futureTask);
public void start()
{
thread.start();
}
/**
* 獲取資源
*
* @return
* @throws ExecutionException
* @throws InterruptedException
*/
public String getRes() throws InterruptedException, ExecutionException
{
return futureTask.get();//加載完畢直接返回,否則等待加載完畢
}
public static void main(String[] args) throws InterruptedException, ExecutionException
{
PreLoaderUseFutureTask task = new PreLoaderUseFutureTask();
/**
* 開(kāi)啟預加載資源
*/
task.start();
// 用戶(hù)在真正需要加載資源前進(jìn)行了其他操作了2秒
Thread.sleep(2000);
/**
* 獲取資源
*/
System.out.println(System.currentTimeMillis() + ":開(kāi)始加載資源");
String res = task.getRes();
System.out.println(res);
System.out.println(System.currentTimeMillis() + ":加載資源結束");
}
}
  操作結果:
  1400902789275:開(kāi)始加載資源
加載資源需要3秒
1400902790275:加載資源結束
  可以看到,原來(lái)加載資源需要3秒,現在只需要1秒。如果用戶(hù)執行其他操作的時(shí)間較長(cháng),可以直接返回,大大增加了用戶(hù)體驗。
  2、看看Future的API
  
  可以看到 Future 的 API 還是比較簡(jiǎn)單的??疵志椭酪馑剂?,get(long,TimeUnit)還是可以支持的,設置最大等待時(shí)間,如操作時(shí)間過(guò)長(cháng),可以取消。
  3、FutureTask模擬,預加載功能供用戶(hù)在線(xiàn)觀(guān)看電子書(shū)
  當用戶(hù)觀(guān)看當前頁(yè)面時(shí),后臺會(huì )提前加載下一頁(yè),可以大大提升用戶(hù)體驗。無(wú)需等待每個(gè)頁(yè)面加載。用戶(hù)會(huì )覺(jué)得這個(gè)電子書(shū)軟件很流暢。真的很棒。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask模擬預加載下一頁(yè)圖書(shū)的內容
*
* @author zhy
*
*/
public class BookInstance
{
/**
* 當前的頁(yè)碼
*/
private volatile int currentPage = 1;
/**
* 異步的任務(wù)獲取當前頁(yè)的內容
*/
FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
});
/**
* 實(shí)例化一本書(shū),并傳入當前讀到的頁(yè)碼
*
* @param currentPage
*/
public BookInstance(int currentPage)
{
this.currentPage = currentPage;
/**
* 直接啟動(dòng)線(xiàn)程獲取當前頁(yè)碼內容
*/
Thread thread = new Thread(futureTask);
thread.start();
}
/**
* 獲取當前頁(yè)的內容
*
* @return
* @throws InterruptedException
* @throws ExecutionException
*/
public String getCurrentPageContent() throws InterruptedException,
ExecutionException
{
String con = futureTask.get();
this.currentPage = currentPage + 1;
Thread thread = new Thread(futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
}));
thread.start();
return con;
}
/**
* 根據頁(yè)碼從網(wǎng)絡(luò )抓取數據
*
* @return
* @throws InterruptedException
*/
private String loadDataFromNet() throws InterruptedException
{
Thread.sleep(1000);
return "Page " + this.currentPage + " : the content ....";
}
public static void main(String[] args) throws InterruptedException,
ExecutionException
{
BookInstance instance = new BookInstance(1);
for (int i = 0; i < 10; i++)
{
long start = System.currentTimeMillis();
String content = instance.getCurrentPageContent();
System.out.println("[1秒閱讀時(shí)間]read:" + content);
Thread.sleep(1000);
System.out.println(System.currentTimeMillis() - start);
}
}
}
  輸出結果:
  [1秒閱讀時(shí)間]read:Page 1 : the content ....
2001
[1秒閱讀時(shí)間]read:Page 2 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 3 : the content ....
1001
[1秒閱讀時(shí)間]read:Page 4 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 5 : the content ....
1001
  可以看到,除了第一次查看當前頁(yè)面時(shí)等待網(wǎng)絡(luò )加載數據的過(guò)程(輸出:2001,1000是加載時(shí)間,1000是用戶(hù)閱讀時(shí)間),接下來(lái)的頁(yè)面是全部瞬間返回(輸出1000是用戶(hù)閱讀時(shí)間),完全不需要等待。
  代碼是為了說(shuō)明FutureTask的應用場(chǎng)景,請勿直接在項目中使用。
  好了,就這樣了,歡迎大家留言。

抓取網(wǎng)頁(yè)生成電子書(shū)(實(shí)用功能:1.優(yōu)化電子書(shū)的排版(RSS制成電子書(shū)電子書(shū)))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 666 次瀏覽 ? 2022-01-05 17:16 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(實(shí)用功能:1.優(yōu)化電子書(shū)的排版(RSS制成電子書(shū)電子書(shū)))
  Calibre是一款免費開(kāi)源的電子書(shū)管理神器,可用于整理、存儲、管理、閱讀和轉換電子書(shū)。支持大部分電子書(shū)格式;它還可以添加文本、圖像材料和在線(xiàn)內容(RSS)并將它們轉換為電子書(shū)。
  
  可與最流行的電子書(shū)閱讀器同步,軟件同時(shí)支持Windows、macOS和Linux系統。
  實(shí)用功能:
  1. 優(yōu)化電子書(shū)版式
  無(wú)論是從亞馬遜 Kindle 電子書(shū)店購買(mǎi),還是從其他在線(xiàn)渠道下載的電子書(shū),排版往往不盡如人意。
  
  這時(shí)候就可以使用Calibre進(jìn)行簡(jiǎn)單的優(yōu)化,就可以制作出排版良好的電子書(shū),修改上面的參數就可以達到不錯的效果。
  2. 獲取 RSS 以制作電子書(shū)
  準備好 RSS 提要后,您可以在 Calibre 中添加這些提要。打開(kāi)Calibre,在Calibre主界面頂部的功能圖標中找到“抓取新聞”,點(diǎn)擊右側的向下箭頭,在彈出的菜單中點(diǎn)擊“添加自定義新聞源”。
  
  3. 轉換電子書(shū)格式
  Calibre 有兩種轉換方式:“一一轉換”和“批量轉換”。如果選擇多個(gè)文件,使用“一一轉換”需要對每本書(shū)進(jìn)行單獨設置。例如,您可以為不同的電子書(shū)設置不同的格式;而“批量轉換”是所有電子書(shū)的通用設置。
  
  Calibre 支持轉換格式:EPUB、MOBI、AZW3、DOCX、FB2、HTMLZ、LIT、LRF、PDB、PDF、PMIZ、RB、RTF、SNB、TCR、TXT、TXTZ、ZIP 等。
  4. 通過(guò) WiFi 將電子書(shū)傳輸到 Kindle
  
  如果您使用的是無(wú)線(xiàn)路由器,您可以將Calibre 變成一個(gè)小型服務(wù)器,然后使用Kindle 的“實(shí)驗性網(wǎng)絡(luò )瀏覽器”訪(fǎng)問(wèn)Calibre 圖書(shū)館中的電子書(shū)并下載到Kindle。
  5. 郵件一鍵推送電子書(shū)
  
  此外,Calibre 還有許多強大實(shí)用的功能:
  1)您可以通過(guò)瀏覽器查看、閱讀或下載您的圖書(shū)館(:8080);
  2) 將TXT文件轉換為MOBI格式的帶目錄的電子書(shū);
  3)使用Calibre添加或修改電子書(shū)的封面;
  4)使用Calibre抓取網(wǎng)站頁(yè)面制作電子書(shū); 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(實(shí)用功能:1.優(yōu)化電子書(shū)的排版(RSS制成電子書(shū)電子書(shū)))
  Calibre是一款免費開(kāi)源的電子書(shū)管理神器,可用于整理、存儲、管理、閱讀和轉換電子書(shū)。支持大部分電子書(shū)格式;它還可以添加文本、圖像材料和在線(xiàn)內容(RSS)并將它們轉換為電子書(shū)。
  
  可與最流行的電子書(shū)閱讀器同步,軟件同時(shí)支持Windows、macOS和Linux系統。
  實(shí)用功能:
  1. 優(yōu)化電子書(shū)版式
  無(wú)論是從亞馬遜 Kindle 電子書(shū)店購買(mǎi),還是從其他在線(xiàn)渠道下載的電子書(shū),排版往往不盡如人意。
  
  這時(shí)候就可以使用Calibre進(jìn)行簡(jiǎn)單的優(yōu)化,就可以制作出排版良好的電子書(shū),修改上面的參數就可以達到不錯的效果。
  2. 獲取 RSS 以制作電子書(shū)
  準備好 RSS 提要后,您可以在 Calibre 中添加這些提要。打開(kāi)Calibre,在Calibre主界面頂部的功能圖標中找到“抓取新聞”,點(diǎn)擊右側的向下箭頭,在彈出的菜單中點(diǎn)擊“添加自定義新聞源”。
  
  3. 轉換電子書(shū)格式
  Calibre 有兩種轉換方式:“一一轉換”和“批量轉換”。如果選擇多個(gè)文件,使用“一一轉換”需要對每本書(shū)進(jìn)行單獨設置。例如,您可以為不同的電子書(shū)設置不同的格式;而“批量轉換”是所有電子書(shū)的通用設置。
  
  Calibre 支持轉換格式:EPUB、MOBI、AZW3、DOCX、FB2、HTMLZ、LIT、LRF、PDB、PDF、PMIZ、RB、RTF、SNB、TCR、TXT、TXTZ、ZIP 等。
  4. 通過(guò) WiFi 將電子書(shū)傳輸到 Kindle
  
  如果您使用的是無(wú)線(xiàn)路由器,您可以將Calibre 變成一個(gè)小型服務(wù)器,然后使用Kindle 的“實(shí)驗性網(wǎng)絡(luò )瀏覽器”訪(fǎng)問(wèn)Calibre 圖書(shū)館中的電子書(shū)并下載到Kindle。
  5. 郵件一鍵推送電子書(shū)
  
  此外,Calibre 還有許多強大實(shí)用的功能:
  1)您可以通過(guò)瀏覽器查看、閱讀或下載您的圖書(shū)館(:8080);
  2) 將TXT文件轉換為MOBI格式的帶目錄的電子書(shū);
  3)使用Calibre添加或修改電子書(shū)的封面;
  4)使用Calibre抓取網(wǎng)站頁(yè)面制作電子書(shū);

抓取網(wǎng)頁(yè)生成電子書(shū)(抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取哪種網(wǎng)頁(yè))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 103 次瀏覽 ? 2022-01-05 15:03 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取哪種網(wǎng)頁(yè))
  抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取豆瓣書(shū)籍的時(shí)候,想要了解更詳細,不知道題主想要爬取哪種網(wǎng)頁(yè)。比如,微信公眾號有很多地方提供文章聚合,微博也可以抓取,
  android的話(huà),下載些codeblocks之類(lèi)的工具,安裝daocloud,自己寫(xiě)個(gè)網(wǎng)頁(yè)多人連接,然后開(kāi)始傳遞鏈接,鏈接到app里就可以看電子書(shū)了,還可以,自動(dòng)加入書(shū)架。ios可以買(mǎi)一本nonethought030,入門(mén)的好教材,也就幾千元,電子書(shū)也好找,除非人工作業(yè)。
  可以寫(xiě)個(gè)小app,比如微信文章會(huì )提供下載鏈接,你可以自己把獲取之后傳給別人,而不需要自己下一大堆文件過(guò)去。
  多讀書(shū)!
  能理解你的想法。你可以直接爬下來(lái),加入整理列表,提供給別人閱讀,這樣就可以免費下載了。
  最直接的方法,就是搜索讀書(shū)app,然后下載下來(lái)讀。但是,題主如果要下載的書(shū)籍,和現在市面上的書(shū)籍大多是有差別的,那這就得需要研究一番。其實(shí)最簡(jiǎn)單的辦法,你也可以直接選一些文章,這種比較多。你直接爬下來(lái),整理好,有提供別人閱讀的,自己就可以閱讀了,也不需要下載其他電子書(shū)。
  有個(gè)app叫西西閱讀器,挺不錯的。是一款瀏覽器級別的閱讀軟件?,F在有很多的公眾號都在推薦了。搜狐、網(wǎng)易等都有??梢蕴峁┟赓M下載,特別方便。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取哪種網(wǎng)頁(yè))
  抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取豆瓣書(shū)籍的時(shí)候,想要了解更詳細,不知道題主想要爬取哪種網(wǎng)頁(yè)。比如,微信公眾號有很多地方提供文章聚合,微博也可以抓取,
  android的話(huà),下載些codeblocks之類(lèi)的工具,安裝daocloud,自己寫(xiě)個(gè)網(wǎng)頁(yè)多人連接,然后開(kāi)始傳遞鏈接,鏈接到app里就可以看電子書(shū)了,還可以,自動(dòng)加入書(shū)架。ios可以買(mǎi)一本nonethought030,入門(mén)的好教材,也就幾千元,電子書(shū)也好找,除非人工作業(yè)。
  可以寫(xiě)個(gè)小app,比如微信文章會(huì )提供下載鏈接,你可以自己把獲取之后傳給別人,而不需要自己下一大堆文件過(guò)去。
  多讀書(shū)!
  能理解你的想法。你可以直接爬下來(lái),加入整理列表,提供給別人閱讀,這樣就可以免費下載了。
  最直接的方法,就是搜索讀書(shū)app,然后下載下來(lái)讀。但是,題主如果要下載的書(shū)籍,和現在市面上的書(shū)籍大多是有差別的,那這就得需要研究一番。其實(shí)最簡(jiǎn)單的辦法,你也可以直接選一些文章,這種比較多。你直接爬下來(lái),整理好,有提供別人閱讀的,自己就可以閱讀了,也不需要下載其他電子書(shū)。
  有個(gè)app叫西西閱讀器,挺不錯的。是一款瀏覽器級別的閱讀軟件?,F在有很多的公眾號都在推薦了。搜狐、網(wǎng)易等都有??梢蕴峁┟赓M下載,特別方便。

抓取網(wǎng)頁(yè)生成電子書(shū)(什么是爬蟲(chóng)爬蟲(chóng):Python爬蟲(chóng)架構架構主要由五個(gè)部分組成)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2022-01-03 17:10 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(什么是爬蟲(chóng)爬蟲(chóng):Python爬蟲(chóng)架構架構主要由五個(gè)部分組成)
  什么是爬蟲(chóng)
  爬蟲(chóng):一種自動(dòng)從互聯(lián)網(wǎng)上抓取信息的程序,從互聯(lián)網(wǎng)上抓取對我們有價(jià)值的信息。
  Python 爬蟲(chóng)架構
  Python爬蟲(chóng)架構主要由調度器、URL管理器、網(wǎng)頁(yè)下載器、網(wǎng)頁(yè)解析器、應用(抓取有價(jià)值的數據)五部分組成。
  
  使用urllib2實(shí)現網(wǎng)頁(yè)下載的方式
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import cookielib
import urllib2

url = "http://www.baidu.com"
response1 = urllib2.urlopen(url)
print "第一種方法"
#獲取狀態(tài)碼,200表示成功
print response1.getcode()
#獲取網(wǎng)頁(yè)內容的長(cháng)度
print len(response1.read())

print "第二種方法"
request = urllib2.Request(url)
#模擬Mozilla瀏覽器進(jìn)行爬蟲(chóng)
request.add_header("user-agent","Mozilla/5.0")
response2 = urllib2.urlopen(request)
print response2.getcode()
print len(response2.read())

print "第三種方法"
cookie = cookielib.CookieJar()
#加入urllib2處理cookie的能力
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response3 = urllib2.urlopen(url)
print response3.getcode()
print len(response3.read())
print cookie
  使用 Beautiful Soup 解析 html 文件
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import re

from bs4 import BeautifulSoup
html_doc = """
The Dormouse's story
<p class="title">The Dormouse's story
  Once upon a time there were three little sisters; and their names were
Elsie,
Lacie and
Tillie;
and they lived at the bottom of a well.
  ...
"""
#創(chuàng )建一個(gè)BeautifulSoup解析對象
soup = BeautifulSoup(html_doc,"html.parser",from_encoding="utf-8")
#獲取所有的鏈接
links = soup.find_all('a')
print "所有的鏈接"
for link in links:
print link.name,link['href'],link.get_text()

print "獲取特定的URL地址"
link_node = soup.find('a',href="http://example.com/elsie")
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "正則表達式匹配"
link_node = soup.find('a',href=re.compile(r"ti"))
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "獲取P段落的文字"
p_node = soup.find('p',class_='story')
print p_node.name,p_node['class'],p_node.get_text()shsh
</p>
  python 很強大嗎? 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(什么是爬蟲(chóng)爬蟲(chóng):Python爬蟲(chóng)架構架構主要由五個(gè)部分組成)
  什么是爬蟲(chóng)
  爬蟲(chóng):一種自動(dòng)從互聯(lián)網(wǎng)上抓取信息的程序,從互聯(lián)網(wǎng)上抓取對我們有價(jià)值的信息。
  Python 爬蟲(chóng)架構
  Python爬蟲(chóng)架構主要由調度器、URL管理器、網(wǎng)頁(yè)下載器、網(wǎng)頁(yè)解析器、應用(抓取有價(jià)值的數據)五部分組成。
  
  使用urllib2實(shí)現網(wǎng)頁(yè)下載的方式
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import cookielib
import urllib2

url = "http://www.baidu.com"
response1 = urllib2.urlopen(url)
print "第一種方法"
#獲取狀態(tài)碼,200表示成功
print response1.getcode()
#獲取網(wǎng)頁(yè)內容的長(cháng)度
print len(response1.read())

print "第二種方法"
request = urllib2.Request(url)
#模擬Mozilla瀏覽器進(jìn)行爬蟲(chóng)
request.add_header("user-agent","Mozilla/5.0")
response2 = urllib2.urlopen(request)
print response2.getcode()
print len(response2.read())

print "第三種方法"
cookie = cookielib.CookieJar()
#加入urllib2處理cookie的能力
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response3 = urllib2.urlopen(url)
print response3.getcode()
print len(response3.read())
print cookie
  使用 Beautiful Soup 解析 html 文件
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import re

from bs4 import BeautifulSoup
html_doc = """
The Dormouse's story
<p class="title">The Dormouse's story
  Once upon a time there were three little sisters; and their names were
Elsie,
Lacie and
Tillie;
and they lived at the bottom of a well.
  ...
"""
#創(chuàng )建一個(gè)BeautifulSoup解析對象
soup = BeautifulSoup(html_doc,"html.parser",from_encoding="utf-8")
#獲取所有的鏈接
links = soup.find_all('a')
print "所有的鏈接"
for link in links:
print link.name,link['href'],link.get_text()

print "獲取特定的URL地址"
link_node = soup.find('a',href="http://example.com/elsie";)
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "正則表達式匹配"
link_node = soup.find('a',href=re.compile(r"ti"))
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "獲取P段落的文字"
p_node = soup.find('p',class_='story')
print p_node.name,p_node['class'],p_node.get_text()shsh
</p>
  python 很強大嗎?

抓取網(wǎng)頁(yè)生成電子書(shū)(資料管理電子書(shū)制作利器-友益文書(shū)軟件設置 )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 163 次瀏覽 ? 2022-01-03 09:18 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(資料管理電子書(shū)制作利器-友益文書(shū)軟件設置
)
  數據管理電子書(shū)制作工具-友易文檔軟件是一款集數據管理、電子書(shū)制作、翻頁(yè)電子書(shū)制作、多媒體課件管理于一體的多功能軟件...可用于管理htm網(wǎng)頁(yè)和 mht 單個(gè)網(wǎng)頁(yè)。 、Word文檔、excel文檔、幻燈片、pdf、chm、exe、txt、rtf、GIF、JPG、PNG、DJVU、ICO、TIF、BMP、Flash動(dòng)畫(huà)等格式文件;支持全文、網(wǎng)頁(yè)、word文檔搜索,支持背景音樂(lè )播放。集成pdf閱讀功能,無(wú)需安裝任何pdf閱讀器,輕松閱讀pdf文件。
  可以發(fā)布電腦版exe、chm電子書(shū)、安卓apk電子書(shū)、蘋(píng)果epub電子書(shū)等,還可以發(fā)布翻頁(yè)電子書(shū)功能。設置一機一碼或反傳播功能。
  無(wú)需安裝任何軟件,直接生成安卓手機apk電子書(shū)。
  方便制作exe翻頁(yè)電子書(shū)、滑動(dòng)手機相冊、撕角翻頁(yè)電子書(shū)。
  可生成安卓手機版apk電子書(shū),支持5級目錄,具有目錄搜索、全文搜索、書(shū)簽、設置一機一碼功能,支持文本、網(wǎng)頁(yè)、圖片和pdf文檔,無(wú)需在手機上安裝其他任何閱讀器都可以閱讀。是目前安卓手機最強大的數據管理和電子書(shū)軟件。
  可以生成蘋(píng)果手機可以閱讀的epub格式文件;
  可以生成具有全文搜索、目錄搜索、采集夾等功能的chm格式文件。
  可以直接為托管數據生成可執行文件。軟件采用窗口風(fēng)格,目錄樹(shù)結構管理,所見(jiàn)即所得的設計理念,不需要復雜的轉換和編譯。
  易于使用和操作。您可以自由添加和刪除目錄樹(shù),隨意編輯文檔內容,更改字體大小和顏色。
  該軟件還可以生成電子相冊,非常適合企事業(yè)單位進(jìn)行產(chǎn)品推廣和業(yè)務(wù)推廣,在微信上分享非常方便。
  本軟件不斷吸收同類(lèi)軟件的優(yōu)點(diǎn),同時(shí)在功能和設計上有獨特的創(chuàng )新。采用混合索引算法,數據存儲采用自己的壓縮格式,獨特的多文本超鏈接功能。網(wǎng)頁(yè)仍可編輯,支持Word文檔、網(wǎng)頁(yè)、文本等格式之間的轉換。采用多級分布式加密算法,界面支持皮膚等個(gè)性化設計。
  
  
  
  
  
  
  
  
  
  
   查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(資料管理電子書(shū)制作利器-友益文書(shū)軟件設置
)
  數據管理電子書(shū)制作工具-友易文檔軟件是一款集數據管理、電子書(shū)制作、翻頁(yè)電子書(shū)制作、多媒體課件管理于一體的多功能軟件...可用于管理htm網(wǎng)頁(yè)和 mht 單個(gè)網(wǎng)頁(yè)。 、Word文檔、excel文檔、幻燈片、pdf、chm、exe、txt、rtf、GIF、JPG、PNG、DJVU、ICO、TIF、BMP、Flash動(dòng)畫(huà)等格式文件;支持全文、網(wǎng)頁(yè)、word文檔搜索,支持背景音樂(lè )播放。集成pdf閱讀功能,無(wú)需安裝任何pdf閱讀器,輕松閱讀pdf文件。
  可以發(fā)布電腦版exe、chm電子書(shū)、安卓apk電子書(shū)、蘋(píng)果epub電子書(shū)等,還可以發(fā)布翻頁(yè)電子書(shū)功能。設置一機一碼或反傳播功能。
  無(wú)需安裝任何軟件,直接生成安卓手機apk電子書(shū)。
  方便制作exe翻頁(yè)電子書(shū)、滑動(dòng)手機相冊、撕角翻頁(yè)電子書(shū)。
  可生成安卓手機版apk電子書(shū),支持5級目錄,具有目錄搜索、全文搜索、書(shū)簽、設置一機一碼功能,支持文本、網(wǎng)頁(yè)、圖片和pdf文檔,無(wú)需在手機上安裝其他任何閱讀器都可以閱讀。是目前安卓手機最強大的數據管理和電子書(shū)軟件。
  可以生成蘋(píng)果手機可以閱讀的epub格式文件;
  可以生成具有全文搜索、目錄搜索、采集夾等功能的chm格式文件。
  可以直接為托管數據生成可執行文件。軟件采用窗口風(fēng)格,目錄樹(shù)結構管理,所見(jiàn)即所得的設計理念,不需要復雜的轉換和編譯。
  易于使用和操作。您可以自由添加和刪除目錄樹(shù),隨意編輯文檔內容,更改字體大小和顏色。
  該軟件還可以生成電子相冊,非常適合企事業(yè)單位進(jìn)行產(chǎn)品推廣和業(yè)務(wù)推廣,在微信上分享非常方便。
  本軟件不斷吸收同類(lèi)軟件的優(yōu)點(diǎn),同時(shí)在功能和設計上有獨特的創(chuàng )新。采用混合索引算法,數據存儲采用自己的壓縮格式,獨特的多文本超鏈接功能。網(wǎng)頁(yè)仍可編輯,支持Word文檔、網(wǎng)頁(yè)、文本等格式之間的轉換。采用多級分布式加密算法,界面支持皮膚等個(gè)性化設計。
  
  
  
  
  
  
  
  
  
  
  

抓取網(wǎng)頁(yè)生成電子書(shū)(豆瓣日記:只輸出最近幾個(gè)月的日記摘要(圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 130 次瀏覽 ? 2022-01-03 09:17 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(豆瓣日記:只輸出最近幾個(gè)月的日記摘要(圖))
  豆瓣日記的提要地址很容易找到。打開(kāi)博主的豆瓣日記界面,右欄下方是官方提要地址。
  或者安裝 RSShub Radar 瀏覽器擴展,在豆瓣日記界面點(diǎn)擊擴展圖標,會(huì )顯示提要地址。
  
  使用Calibre進(jìn)行捕捉文章
  啟動(dòng) Calibre,然后在工具欄上的抓取新聞下拉欄中找到添加自定義新聞源。
  
  在“添加自定義新聞源”窗口中,選擇左下角的“新建訂閱列表”。
  
  在打開(kāi)的窗口中,按要求填寫(xiě)以下信息:
  
  填寫(xiě)完畢后,點(diǎn)擊添加來(lái)源,將其添加到訂閱列表中的新聞框。如果要添加其他源地址,可以繼續以同樣的方式添加源。
  
  點(diǎn)擊保存退出添加自定義新聞源窗口,然后點(diǎn)擊工具欄中的抓取新聞,會(huì )彈出一個(gè)常規的新聞下載窗口,在左側欄的自定義中選擇剛剛創(chuàng )建的訂閱列表的標題,然后點(diǎn)擊右下角的立即下載。
  
  等待Calibre從網(wǎng)上獲取文章,提示完成后,庫中會(huì )出現訂閱列表標題的電子書(shū)。
  
  查看電子書(shū)
  電子書(shū)封面為簡(jiǎn)單的自動(dòng)生成封面,附有文章目錄,內容已排版。
  
  因為豆瓣日記的RSS提要有兩個(gè)缺陷:只輸出日記摘要,只輸出最近幾個(gè)月的日記。前者結果8月以來(lái)電子書(shū)里只有文章,后者得益于Calibre可以自動(dòng)抓取全文并被攻克。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(豆瓣日記:只輸出最近幾個(gè)月的日記摘要(圖))
  豆瓣日記的提要地址很容易找到。打開(kāi)博主的豆瓣日記界面,右欄下方是官方提要地址。
  或者安裝 RSShub Radar 瀏覽器擴展,在豆瓣日記界面點(diǎn)擊擴展圖標,會(huì )顯示提要地址。
  
  使用Calibre進(jìn)行捕捉文章
  啟動(dòng) Calibre,然后在工具欄上的抓取新聞下拉欄中找到添加自定義新聞源。
  
  在“添加自定義新聞源”窗口中,選擇左下角的“新建訂閱列表”。
  
  在打開(kāi)的窗口中,按要求填寫(xiě)以下信息:
  
  填寫(xiě)完畢后,點(diǎn)擊添加來(lái)源,將其添加到訂閱列表中的新聞框。如果要添加其他源地址,可以繼續以同樣的方式添加源。
  
  點(diǎn)擊保存退出添加自定義新聞源窗口,然后點(diǎn)擊工具欄中的抓取新聞,會(huì )彈出一個(gè)常規的新聞下載窗口,在左側欄的自定義中選擇剛剛創(chuàng )建的訂閱列表的標題,然后點(diǎn)擊右下角的立即下載。
  
  等待Calibre從網(wǎng)上獲取文章,提示完成后,庫中會(huì )出現訂閱列表標題的電子書(shū)。
  
  查看電子書(shū)
  電子書(shū)封面為簡(jiǎn)單的自動(dòng)生成封面,附有文章目錄,內容已排版。
  
  因為豆瓣日記的RSS提要有兩個(gè)缺陷:只輸出日記摘要,只輸出最近幾個(gè)月的日記。前者結果8月以來(lái)電子書(shū)里只有文章,后者得益于Calibre可以自動(dòng)抓取全文并被攻克。

抓取網(wǎng)頁(yè)生成電子書(shū)(?4應用點(diǎn)滴不需要做網(wǎng)頁(yè)索引文件索引網(wǎng)頁(yè)生成器照樣)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 89 次瀏覽 ? 2021-12-29 22:17 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(?4應用點(diǎn)滴不需要做網(wǎng)頁(yè)索引文件索引網(wǎng)頁(yè)生成器照樣)
  我經(jīng)常上網(wǎng)搜索一些有趣的資料,還有很多軟件教程,放在硬盤(pán)上,隨時(shí)隨地看,不用擔心是否在線(xiàn)。我最近學(xué)習了 LiveMotion,我已經(jīng)完成了一些課程。保存的htm文件都是htm文件。當你閱讀它們時(shí),你必須一一打開(kāi)它們。感覺(jué)真的很麻煩。(如圖1)
  
  ?1
  如果可以集成到一個(gè)網(wǎng)頁(yè)索引文件中,就非常方便了。一想到網(wǎng)頁(yè)索引,雖然做網(wǎng)頁(yè)索引不是什么難事,但是勞動(dòng)強度不小,尤其是那些需要連接大量低級網(wǎng)頁(yè)的網(wǎng)頁(yè),更是更可怕。
  解決方案
  ABU Make Index v2.10.0004,這是一款由中國人編寫(xiě)的免費綠色軟件,體積小,288KB,可在作者主頁(yè)()下載。解壓后無(wú)需安裝,運行makehtmindex.exe即可使用。這是一個(gè)用于為擴展名為 Htm、Html、Txt、Gb、Jpg 和 Bmp 的文件生成索引網(wǎng)頁(yè)的工具。生成圖片索引時(shí)會(huì )自動(dòng)生成源圖片的縮略圖,因此也可以作為制作圖片縮略圖的工具。
  Web 索引生成器只需點(diǎn)擊三下鼠標,即可創(chuàng )建精美的 Web 索引,只需點(diǎn)擊三下五次分區即可。我要處理的是一個(gè)網(wǎng)頁(yè)文件,所以我首先選擇了上面的按鈕“生成Htm、Html、Txt、Gb擴展文件索引網(wǎng)頁(yè)”。(如圖2)
  
  ?2
  然后按“下一步”按鈕,出現網(wǎng)頁(yè)索引創(chuàng )建界面。瀏覽找到目標文件目錄,確定網(wǎng)頁(yè)索引的文件名和保存路徑,點(diǎn)擊“生成”按鈕完成網(wǎng)頁(yè)索引。(如圖3)
  
  ?3
  生成的Htm、Html、Txt、Gb等擴展名文件的索引網(wǎng)頁(yè),與源文件保存在同一目錄下(默認路徑不可更改)。然后在瀏覽器里看我的index文件,再看每節課的內容,每個(gè)htm文件的標題都被提取出來(lái)了,更有條理了?。ㄈ鐖D4)
  
  ?4
  應用位
  即使您不需要制作網(wǎng)頁(yè),網(wǎng)頁(yè)生成器仍然非常有用。每次在線(xiàn)下載大量網(wǎng)頁(yè)和圖片時(shí),網(wǎng)頁(yè)索引生成器都會(huì )將它們整齊排列,讓您盡收眼底。
  1、 為Htm、Html、Txt、Gb擴展名的文件生成索引網(wǎng)頁(yè),并保存在與源文件相同的目錄中。如果源文件目錄中同時(shí)存在上述兩種類(lèi)型的文件,則生成的網(wǎng)頁(yè)將有2個(gè)版塊和快捷方式書(shū)簽。如果只有其中一種,生成的網(wǎng)頁(yè)就不會(huì )被切分,自然也就沒(méi)有快捷書(shū)簽了。
  2、 生成Jpg和Bmp擴展文件(圖片)的索引網(wǎng)頁(yè),可以選擇保存文件的路徑。注意:當索引文件保存路徑與源文件路徑不同時(shí),可能是索引文件中的鏈接有問(wèn)題??s略圖保存在保存索引文件的目錄下的“PREVIEW”子目錄中(生成的縮略圖是一個(gè)未壓縮的假“JPG”文件)。
  注:由于IE對“BMP”文件支持不好,點(diǎn)擊索引文件中的“BMP”文件鏈接顯示異?;蝻@示圖標,NC沒(méi)問(wèn)題。
  如果你認為“上網(wǎng)”就是“下載”,那么使用這個(gè)工具可以讓“下載”的事情有條不紊。一定要善用工具,為我們創(chuàng )造休閑的工作和學(xué)習! 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(?4應用點(diǎn)滴不需要做網(wǎng)頁(yè)索引文件索引網(wǎng)頁(yè)生成器照樣)
  我經(jīng)常上網(wǎng)搜索一些有趣的資料,還有很多軟件教程,放在硬盤(pán)上,隨時(shí)隨地看,不用擔心是否在線(xiàn)。我最近學(xué)習了 LiveMotion,我已經(jīng)完成了一些課程。保存的htm文件都是htm文件。當你閱讀它們時(shí),你必須一一打開(kāi)它們。感覺(jué)真的很麻煩。(如圖1)
  
  ?1
  如果可以集成到一個(gè)網(wǎng)頁(yè)索引文件中,就非常方便了。一想到網(wǎng)頁(yè)索引,雖然做網(wǎng)頁(yè)索引不是什么難事,但是勞動(dòng)強度不小,尤其是那些需要連接大量低級網(wǎng)頁(yè)的網(wǎng)頁(yè),更是更可怕。
  解決方案
  ABU Make Index v2.10.0004,這是一款由中國人編寫(xiě)的免費綠色軟件,體積小,288KB,可在作者主頁(yè)()下載。解壓后無(wú)需安裝,運行makehtmindex.exe即可使用。這是一個(gè)用于為擴展名為 Htm、Html、Txt、Gb、Jpg 和 Bmp 的文件生成索引網(wǎng)頁(yè)的工具。生成圖片索引時(shí)會(huì )自動(dòng)生成源圖片的縮略圖,因此也可以作為制作圖片縮略圖的工具。
  Web 索引生成器只需點(diǎn)擊三下鼠標,即可創(chuàng )建精美的 Web 索引,只需點(diǎn)擊三下五次分區即可。我要處理的是一個(gè)網(wǎng)頁(yè)文件,所以我首先選擇了上面的按鈕“生成Htm、Html、Txt、Gb擴展文件索引網(wǎng)頁(yè)”。(如圖2)
  
  ?2
  然后按“下一步”按鈕,出現網(wǎng)頁(yè)索引創(chuàng )建界面。瀏覽找到目標文件目錄,確定網(wǎng)頁(yè)索引的文件名和保存路徑,點(diǎn)擊“生成”按鈕完成網(wǎng)頁(yè)索引。(如圖3)
  
  ?3
  生成的Htm、Html、Txt、Gb等擴展名文件的索引網(wǎng)頁(yè),與源文件保存在同一目錄下(默認路徑不可更改)。然后在瀏覽器里看我的index文件,再看每節課的內容,每個(gè)htm文件的標題都被提取出來(lái)了,更有條理了?。ㄈ鐖D4)
  
  ?4
  應用位
  即使您不需要制作網(wǎng)頁(yè),網(wǎng)頁(yè)生成器仍然非常有用。每次在線(xiàn)下載大量網(wǎng)頁(yè)和圖片時(shí),網(wǎng)頁(yè)索引生成器都會(huì )將它們整齊排列,讓您盡收眼底。
  1、 為Htm、Html、Txt、Gb擴展名的文件生成索引網(wǎng)頁(yè),并保存在與源文件相同的目錄中。如果源文件目錄中同時(shí)存在上述兩種類(lèi)型的文件,則生成的網(wǎng)頁(yè)將有2個(gè)版塊和快捷方式書(shū)簽。如果只有其中一種,生成的網(wǎng)頁(yè)就不會(huì )被切分,自然也就沒(méi)有快捷書(shū)簽了。
  2、 生成Jpg和Bmp擴展文件(圖片)的索引網(wǎng)頁(yè),可以選擇保存文件的路徑。注意:當索引文件保存路徑與源文件路徑不同時(shí),可能是索引文件中的鏈接有問(wèn)題??s略圖保存在保存索引文件的目錄下的“PREVIEW”子目錄中(生成的縮略圖是一個(gè)未壓縮的假“JPG”文件)。
  注:由于IE對“BMP”文件支持不好,點(diǎn)擊索引文件中的“BMP”文件鏈接顯示異?;蝻@示圖標,NC沒(méi)問(wèn)題。
  如果你認為“上網(wǎng)”就是“下載”,那么使用這個(gè)工具可以讓“下載”的事情有條不紊。一定要善用工具,為我們創(chuàng )造休閑的工作和學(xué)習!

抓取網(wǎng)頁(yè)生成電子書(shū)(Python最簡(jiǎn)單的爬蟲(chóng)requests-html安裝-)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 121 次瀏覽 ? 2021-12-29 17:09 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(Python最簡(jiǎn)單的爬蟲(chóng)requests-html安裝-)
  很多朋友都聽(tīng)說(shuō)過(guò)Python這個(gè)名字,Python也有很多爬蟲(chóng)框架,最簡(jiǎn)單的就是requests-html。和著(zhù)名的web請求庫requests是同一個(gè)作者。它專(zhuān)注于XML數據提取,可以說(shuō)是最簡(jiǎn)單的爬蟲(chóng)框架。
  
  安裝 requests-html
  這個(gè)庫的安裝很簡(jiǎn)單,直接通過(guò)pip安裝即可。
  pip install requests-html
  開(kāi)始使用
  Requests-html 使用起來(lái)也很簡(jiǎn)單,下面是一個(gè)簡(jiǎn)單的例子。像往常一樣,第一段介紹了 HTMLSession 來(lái)創(chuàng )建連接并獲取網(wǎng)頁(yè)數據。第二段創(chuàng )建連接并獲取我的短書(shū)的用戶(hù)頁(yè)面。第三段使用xpath語(yǔ)法獲取網(wǎng)頁(yè)上的用戶(hù)名,最后打印出來(lái)。
  from requests_html import HTMLSession
session = HTMLSession()
response = session.get(
&#39;https://www.jianshu.com/u/7753478e1554&#39;)
username = response.html.xpath(
&#39;//a[@class="name"]/text()&#39;, first=True)
print(username)
  看起來(lái)是不是很簡(jiǎn)單?是的,它真的很簡(jiǎn)單,接下來(lái)還有一些更有趣的功能。
  分析網(wǎng)頁(yè)
  在編寫(xiě)爬蟲(chóng)之前要做的一件事是分析網(wǎng)頁(yè)的結構。這個(gè)工作其實(shí)很簡(jiǎn)單,打開(kāi)你要訪(fǎng)問(wèn)的網(wǎng)頁(yè),按F12打開(kāi)開(kāi)發(fā)者工具,就可以在最左邊看到這樣一個(gè)按鈕。單擊此按鈕,然后在網(wǎng)頁(yè)上單擊您要查看的網(wǎng)頁(yè)元素,即可發(fā)現該元素對應的相關(guān)源代碼已經(jīng)為您定位好了。
  
  定位按鈕
  通過(guò)這個(gè)函數,我們可以很方便的對網(wǎng)頁(yè)進(jìn)行分析,然后通過(guò)它的結構來(lái)寫(xiě)一個(gè)爬蟲(chóng)。
  提取數據
  上面的 response.html 是網(wǎng)頁(yè)的根 HTML 節點(diǎn),可以在節點(diǎn)對象上調用一些方法來(lái)檢索數據。最常用的方法是 find 方法,它使用 CSS 選擇器來(lái)定位數據。對于上面的例子,你可以使用find方法來(lái)重寫(xiě)第三段。
  因為所有搜索方法返回的結果都是列表,如果確定只需要搜索一個(gè),可以將第一個(gè)參數設置為true,只返回第一個(gè)結果。find 方法返回的仍然是一個(gè)節點(diǎn)。如果您只需要節點(diǎn)的內容,只需調用其 text 屬性即可。
  用戶(hù)名對應的HTML結構如圖所示。
  
  代碼顯示如下。
  username?=?response.html.find(&#39;a.name&#39;,?first=True).text
  除了 find 方法之外,您還可以使用 xpath 方法來(lái)查找具有 xpath 語(yǔ)法的節點(diǎn),如第一個(gè)示例所示。我個(gè)人更喜歡 xpath 語(yǔ)法。CSS選擇器雖然比較流行,但是寫(xiě)出來(lái)的效果有點(diǎn)奇怪,沒(méi)有xpath那么整潔。
  這是查看如何獲取我的短書(shū)的個(gè)人資料的同一頁(yè)面。網(wǎng)頁(yè)代碼如圖所示。
  
  代碼顯示如下。
  description = response.html.xpath(
&#39;//div[@class="description"]/div[@class="js-intro"]/text()&#39;, first=True)
  CSS 選擇器和 XPATH 語(yǔ)法不是本文的主要內容。如果你對這方面不熟悉,最好閱讀相關(guān)教程。當然,如果您有任何問(wèn)題,也可以提出。如果你想看,我也可以寫(xiě)一篇文章介紹這些語(yǔ)法知識。
  渲染網(wǎng)頁(yè)
  有些網(wǎng)頁(yè)采用前后端分離技術(shù)開(kāi)發(fā),需要瀏覽器渲染才能完整顯示。如果使用爬蟲(chóng)查看,只能顯示部分內容。這時(shí)候瀏覽器需要渲染頁(yè)面才能得到完整的頁(yè)面。使用 requests-html,過(guò)程非常簡(jiǎn)單。
  首先我們來(lái)看一個(gè)需要渲染的網(wǎng)頁(yè)的例子。以下代碼訪(fǎng)問(wèn)我的短書(shū)用戶(hù)頁(yè)面,然后嘗試獲取我的所有文章。但是如果你運行這個(gè)例子,你會(huì )發(fā)現你只能得到前幾項。由于短書(shū)頁(yè)面是典型的需要瀏覽器渲染的頁(yè)面,爬蟲(chóng)獲取的網(wǎng)頁(yè)是不完整的。
  from requests_html import HTMLSession
session = HTMLSession()
headers = {
&#39;user-agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.119 Safari/537.36&#39;
}
url = &#39;https://www.jianshu.com/u/7753478e1554&#39;
r = session.get(url, headers=headers)
for a in r.html.xpath(&#39;//ul[@class="note-list"]/li/div[@class="content"]/a[@class="title"]&#39;):
title = a.text
link = f&#39;https://www.jianshu.com{a.attrs["href"]}&#39;
print(f&#39;《{title}》,{link}&#39;)
  那么如何渲染網(wǎng)頁(yè)以獲得完整的結果呢?其實(shí)很簡(jiǎn)單,在查詢(xún)HTML節點(diǎn)之前調用render函數即可。
  
  使用瀏覽器渲染的渲染函數
  原理也很簡(jiǎn)單。當第一次調用渲染時(shí),requests-html 將在本地下載一個(gè) Chrome 瀏覽器并使用它來(lái)渲染網(wǎng)頁(yè)。這樣我們就可以得到渲染出來(lái)的頁(yè)面了。
  但是對于短書(shū)的例子,還是存在一些問(wèn)題,因為如果你在瀏覽器中打開(kāi)這個(gè)網(wǎng)頁(yè),你會(huì )發(fā)現有些文章只有在瀏覽器向下滑動(dòng)頁(yè)面時(shí)才開(kāi)始渲染。不過(guò),聰明的作者早就考慮過(guò)這種情況。渲染函數支持滑動(dòng)參數。設置后會(huì )模擬瀏覽器滑動(dòng)操作來(lái)解決這個(gè)問(wèn)題。
  r.html.render(scrolldown=50, sleep=0.2)
  節點(diǎn)對象
  不管上面的r.html還是find/xpath函數返回的結果都是節點(diǎn)對象。除了上面介紹的幾種提取數據的方法外,節點(diǎn)對象還有以下屬性,在我們提取數據的時(shí)候也是非常有用的。
  
  相比專(zhuān)業(yè)的爬蟲(chóng)框架scrapy,還是解析庫BeautifulSoup,只用于解析XML。requests-html 可以說(shuō)是恰到好處。沒(méi)有前者那么難學(xué),也不需要像后者那樣使用HTTP請求庫。如果您需要臨時(shí)抓取幾個(gè)網(wǎng)頁(yè),那么 requests-html 是您的最佳選擇。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(Python最簡(jiǎn)單的爬蟲(chóng)requests-html安裝-)
  很多朋友都聽(tīng)說(shuō)過(guò)Python這個(gè)名字,Python也有很多爬蟲(chóng)框架,最簡(jiǎn)單的就是requests-html。和著(zhù)名的web請求庫requests是同一個(gè)作者。它專(zhuān)注于XML數據提取,可以說(shuō)是最簡(jiǎn)單的爬蟲(chóng)框架。
  
  安裝 requests-html
  這個(gè)庫的安裝很簡(jiǎn)單,直接通過(guò)pip安裝即可。
  pip install requests-html
  開(kāi)始使用
  Requests-html 使用起來(lái)也很簡(jiǎn)單,下面是一個(gè)簡(jiǎn)單的例子。像往常一樣,第一段介紹了 HTMLSession 來(lái)創(chuàng )建連接并獲取網(wǎng)頁(yè)數據。第二段創(chuàng )建連接并獲取我的短書(shū)的用戶(hù)頁(yè)面。第三段使用xpath語(yǔ)法獲取網(wǎng)頁(yè)上的用戶(hù)名,最后打印出來(lái)。
  from requests_html import HTMLSession
session = HTMLSession()
response = session.get(
&#39;https://www.jianshu.com/u/7753478e1554&#39;)
username = response.html.xpath(
&#39;//a[@class="name"]/text()&#39;, first=True)
print(username)
  看起來(lái)是不是很簡(jiǎn)單?是的,它真的很簡(jiǎn)單,接下來(lái)還有一些更有趣的功能。
  分析網(wǎng)頁(yè)
  在編寫(xiě)爬蟲(chóng)之前要做的一件事是分析網(wǎng)頁(yè)的結構。這個(gè)工作其實(shí)很簡(jiǎn)單,打開(kāi)你要訪(fǎng)問(wèn)的網(wǎng)頁(yè),按F12打開(kāi)開(kāi)發(fā)者工具,就可以在最左邊看到這樣一個(gè)按鈕。單擊此按鈕,然后在網(wǎng)頁(yè)上單擊您要查看的網(wǎng)頁(yè)元素,即可發(fā)現該元素對應的相關(guān)源代碼已經(jīng)為您定位好了。
  
  定位按鈕
  通過(guò)這個(gè)函數,我們可以很方便的對網(wǎng)頁(yè)進(jìn)行分析,然后通過(guò)它的結構來(lái)寫(xiě)一個(gè)爬蟲(chóng)。
  提取數據
  上面的 response.html 是網(wǎng)頁(yè)的根 HTML 節點(diǎn),可以在節點(diǎn)對象上調用一些方法來(lái)檢索數據。最常用的方法是 find 方法,它使用 CSS 選擇器來(lái)定位數據。對于上面的例子,你可以使用find方法來(lái)重寫(xiě)第三段。
  因為所有搜索方法返回的結果都是列表,如果確定只需要搜索一個(gè),可以將第一個(gè)參數設置為true,只返回第一個(gè)結果。find 方法返回的仍然是一個(gè)節點(diǎn)。如果您只需要節點(diǎn)的內容,只需調用其 text 屬性即可。
  用戶(hù)名對應的HTML結構如圖所示。
  
  代碼顯示如下。
  username?=?response.html.find(&#39;a.name&#39;,?first=True).text
  除了 find 方法之外,您還可以使用 xpath 方法來(lái)查找具有 xpath 語(yǔ)法的節點(diǎn),如第一個(gè)示例所示。我個(gè)人更喜歡 xpath 語(yǔ)法。CSS選擇器雖然比較流行,但是寫(xiě)出來(lái)的效果有點(diǎn)奇怪,沒(méi)有xpath那么整潔。
  這是查看如何獲取我的短書(shū)的個(gè)人資料的同一頁(yè)面。網(wǎng)頁(yè)代碼如圖所示。
  
  代碼顯示如下。
  description = response.html.xpath(
&#39;//div[@class="description"]/div[@class="js-intro"]/text()&#39;, first=True)
  CSS 選擇器和 XPATH 語(yǔ)法不是本文的主要內容。如果你對這方面不熟悉,最好閱讀相關(guān)教程。當然,如果您有任何問(wèn)題,也可以提出。如果你想看,我也可以寫(xiě)一篇文章介紹這些語(yǔ)法知識。
  渲染網(wǎng)頁(yè)
  有些網(wǎng)頁(yè)采用前后端分離技術(shù)開(kāi)發(fā),需要瀏覽器渲染才能完整顯示。如果使用爬蟲(chóng)查看,只能顯示部分內容。這時(shí)候瀏覽器需要渲染頁(yè)面才能得到完整的頁(yè)面。使用 requests-html,過(guò)程非常簡(jiǎn)單。
  首先我們來(lái)看一個(gè)需要渲染的網(wǎng)頁(yè)的例子。以下代碼訪(fǎng)問(wèn)我的短書(shū)用戶(hù)頁(yè)面,然后嘗試獲取我的所有文章。但是如果你運行這個(gè)例子,你會(huì )發(fā)現你只能得到前幾項。由于短書(shū)頁(yè)面是典型的需要瀏覽器渲染的頁(yè)面,爬蟲(chóng)獲取的網(wǎng)頁(yè)是不完整的。
  from requests_html import HTMLSession
session = HTMLSession()
headers = {
&#39;user-agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.119 Safari/537.36&#39;
}
url = &#39;https://www.jianshu.com/u/7753478e1554&#39;
r = session.get(url, headers=headers)
for a in r.html.xpath(&#39;//ul[@class="note-list"]/li/div[@class="content"]/a[@class="title"]&#39;):
title = a.text
link = f&#39;https://www.jianshu.com{a.attrs["href"]}&#39;
print(f&#39;《{title}》,{link}&#39;)
  那么如何渲染網(wǎng)頁(yè)以獲得完整的結果呢?其實(shí)很簡(jiǎn)單,在查詢(xún)HTML節點(diǎn)之前調用render函數即可。
  
  使用瀏覽器渲染的渲染函數
  原理也很簡(jiǎn)單。當第一次調用渲染時(shí),requests-html 將在本地下載一個(gè) Chrome 瀏覽器并使用它來(lái)渲染網(wǎng)頁(yè)。這樣我們就可以得到渲染出來(lái)的頁(yè)面了。
  但是對于短書(shū)的例子,還是存在一些問(wèn)題,因為如果你在瀏覽器中打開(kāi)這個(gè)網(wǎng)頁(yè),你會(huì )發(fā)現有些文章只有在瀏覽器向下滑動(dòng)頁(yè)面時(shí)才開(kāi)始渲染。不過(guò),聰明的作者早就考慮過(guò)這種情況。渲染函數支持滑動(dòng)參數。設置后會(huì )模擬瀏覽器滑動(dòng)操作來(lái)解決這個(gè)問(wèn)題。
  r.html.render(scrolldown=50, sleep=0.2)
  節點(diǎn)對象
  不管上面的r.html還是find/xpath函數返回的結果都是節點(diǎn)對象。除了上面介紹的幾種提取數據的方法外,節點(diǎn)對象還有以下屬性,在我們提取數據的時(shí)候也是非常有用的。
  
  相比專(zhuān)業(yè)的爬蟲(chóng)框架scrapy,還是解析庫BeautifulSoup,只用于解析XML。requests-html 可以說(shuō)是恰到好處。沒(méi)有前者那么難學(xué),也不需要像后者那樣使用HTTP請求庫。如果您需要臨時(shí)抓取幾個(gè)網(wǎng)頁(yè),那么 requests-html 是您的最佳選擇。

抓取網(wǎng)頁(yè)生成電子書(shū)(【手語(yǔ)服務(wù),助力溝通無(wú)障礙】(12月29日19:00) )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 108 次瀏覽 ? 2021-12-29 12:21 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(【手語(yǔ)服務(wù),助力溝通無(wú)障礙】(12月29日19:00)
)
  【手語(yǔ)服務(wù)助溝通障礙】12月29日19:00現場(chǎng)報名&gt;&gt;&gt;
  
  蘇升不服第167篇原創(chuàng )文章,將此公眾號設為star,第一時(shí)間閱讀最新文章。
  之前寫(xiě)過(guò)以下關(guān)于備份的文章:
  再說(shuō)備份微博
  一鍵備份微博并導出為PDF。順便用Python分析微博賬號數據
  再說(shuō)備份網(wǎng)頁(yè)和公眾號文章
  如何備份公眾號文章和可能被刪除的網(wǎng)頁(yè)
  我想看的公眾號文章被刪了怎么辦?
  上面寫(xiě)的公眾號的備份方法是單機備份。如果要備份某個(gè)公眾號的所有文章,有點(diǎn)太麻煩了,所以今天分享一個(gè)用Python一鍵備份某個(gè)公眾號的所有文章。不用擔心你想閱讀的文章被刪除。我以我自己的公眾號蘇升不主為例。原理是通過(guò)抓包抓取微信客戶(hù)端接口,使用Python請求微信接口獲取公眾號文章鏈接并下載。.
  查爾斯捕獲
  常用的抓包工具有Fiddler、Charles、Charles這里用到的,先到官網(wǎng)下載軟件,然后打開(kāi)微信客戶(hù)端找到公眾號,進(jìn)入文章列表可以看到已經(jīng)發(fā)布的文章。
  
  但是Charles在安裝證書(shū)前無(wú)法獲取https接口數據,顯示未知。
  
  安裝證書(shū)后,在proxy-&gt;ssl代理設置中添加域名和主機。
  
  再次爬取查看公眾號文章界面數據。
  
  公眾號文章/mp/profile_ext?action=getmsg&amp;__biz=MjM5ODIzNDEx&amp;f=json&amp;offset=25&amp;count=10&amp;is_ok=1&amp;scene=124&amp;uin=MTU0MTQzNj&amp;key=f57423的接口地址,參數很多,__biz之間有用的參數只有一個(gè)還有公眾號id,uin是用戶(hù)的id,這個(gè)不變,key是請求的秘鑰,一段時(shí)間后失效,offset是偏移量,count是每次請求的次數,返回值可以看到返回的數據包括文章標題title,摘要摘要,文章地址content_url,閱讀源地址source_url,封面封面,作者作者,抓住這些有用的數據。
  Python爬取公眾號文章
  上面分析了接口參數和返回數據,就開(kāi)始用Python請求微信接口吧。
  
  這里只獲取原創(chuàng )文章。我的公眾號有160多篇原創(chuàng )文章,生成HTML文件需要2分鐘。
  
  用谷歌瀏覽器打開(kāi)看看。
  
  生成的HTML文件也可以轉成chm格式,需要安裝Easy CHM軟件,這是一個(gè)快速創(chuàng )建CHM電子書(shū)或CHM幫助文件的強大工具
  
  左邊是文章標題,右邊是文章內容,看起來(lái)很方便。
  
  還有收錄
文章標題和鏈接的降價(jià)文件。上一篇markdown的文章介紹了使用Markdown寫(xiě)簡(jiǎn)歷和PPT。
  
  Excel 文件格式也可用。
  
  HTML、markdown、Excel生成都比較快,因為都是文本,下面開(kāi)始導出PDF。
  導出 PDF
  導出PDF的工具是wkhtmltopdf。首先到官網(wǎng)下載安裝wkhtmltopdf。安裝完成后,設置環(huán)境變量。上一篇文章寫(xiě)了一些你可能不知道的windows技巧,??然后就可以直接從命令行生成PDF了。
  λ wkhtmltopdf http://www.baidu.com baidu.pdfLoading pages (1/6)Counting pages (2/6)Resolving links (4/6)Loading headers and footers (5/6)Printing pages (6/6)Done 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(【手語(yǔ)服務(wù),助力溝通無(wú)障礙】(12月29日19:00)
)
  【手語(yǔ)服務(wù)助溝通障礙】12月29日19:00現場(chǎng)報名&gt;&gt;&gt;
  
  蘇升不服第167篇原創(chuàng )文章,將此公眾號設為star,第一時(shí)間閱讀最新文章。
  之前寫(xiě)過(guò)以下關(guān)于備份的文章:
  再說(shuō)備份微博
  一鍵備份微博并導出為PDF。順便用Python分析微博賬號數據
  再說(shuō)備份網(wǎng)頁(yè)和公眾號文章
  如何備份公眾號文章和可能被刪除的網(wǎng)頁(yè)
  我想看的公眾號文章被刪了怎么辦?
  上面寫(xiě)的公眾號的備份方法是單機備份。如果要備份某個(gè)公眾號的所有文章,有點(diǎn)太麻煩了,所以今天分享一個(gè)用Python一鍵備份某個(gè)公眾號的所有文章。不用擔心你想閱讀的文章被刪除。我以我自己的公眾號蘇升不主為例。原理是通過(guò)抓包抓取微信客戶(hù)端接口,使用Python請求微信接口獲取公眾號文章鏈接并下載。.
  查爾斯捕獲
  常用的抓包工具有Fiddler、Charles、Charles這里用到的,先到官網(wǎng)下載軟件,然后打開(kāi)微信客戶(hù)端找到公眾號,進(jìn)入文章列表可以看到已經(jīng)發(fā)布的文章。
  
  但是Charles在安裝證書(shū)前無(wú)法獲取https接口數據,顯示未知。
  
  安裝證書(shū)后,在proxy-&gt;ssl代理設置中添加域名和主機。
  
  再次爬取查看公眾號文章界面數據。
  
  公眾號文章/mp/profile_ext?action=getmsg&amp;__biz=MjM5ODIzNDEx&amp;f=json&amp;offset=25&amp;count=10&amp;is_ok=1&amp;scene=124&amp;uin=MTU0MTQzNj&amp;key=f57423的接口地址,參數很多,__biz之間有用的參數只有一個(gè)還有公眾號id,uin是用戶(hù)的id,這個(gè)不變,key是請求的秘鑰,一段時(shí)間后失效,offset是偏移量,count是每次請求的次數,返回值可以看到返回的數據包括文章標題title,摘要摘要,文章地址content_url,閱讀源地址source_url,封面封面,作者作者,抓住這些有用的數據。
  Python爬取公眾號文章
  上面分析了接口參數和返回數據,就開(kāi)始用Python請求微信接口吧。
  
  這里只獲取原創(chuàng )文章。我的公眾號有160多篇原創(chuàng )文章,生成HTML文件需要2分鐘。
  
  用谷歌瀏覽器打開(kāi)看看。
  
  生成的HTML文件也可以轉成chm格式,需要安裝Easy CHM軟件,這是一個(gè)快速創(chuàng )建CHM電子書(shū)或CHM幫助文件的強大工具
  
  左邊是文章標題,右邊是文章內容,看起來(lái)很方便。
  
  還有收錄
文章標題和鏈接的降價(jià)文件。上一篇markdown的文章介紹了使用Markdown寫(xiě)簡(jiǎn)歷和PPT。
  
  Excel 文件格式也可用。
  
  HTML、markdown、Excel生成都比較快,因為都是文本,下面開(kāi)始導出PDF。
  導出 PDF
  導出PDF的工具是wkhtmltopdf。首先到官網(wǎng)下載安裝wkhtmltopdf。安裝完成后,設置環(huán)境變量。上一篇文章寫(xiě)了一些你可能不知道的windows技巧,??然后就可以直接從命令行生成PDF了。
  λ wkhtmltopdf http://www.baidu.com baidu.pdfLoading pages (1/6)Counting pages (2/6)Resolving links (4/6)Loading headers and footers (5/6)Printing pages (6/6)Done

抓取網(wǎng)頁(yè)生成電子書(shū)(弘一網(wǎng)童2.7綠色注冊.rar智能化智能化的網(wǎng)頁(yè)保存工具)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 84 次瀏覽 ? 2021-12-29 12:16 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(弘一網(wǎng)童2.7綠色注冊.rar智能化智能化的網(wǎng)頁(yè)保存工具)
  弘毅網(wǎng)子2.7 綠色注冊.rar
  智能網(wǎng)頁(yè)保存工具——WebPortero是一款集網(wǎng)頁(yè)抓取、內容識別、網(wǎng)頁(yè)編輯、格式轉換于一體的智能網(wǎng)頁(yè)保存工具??梢员4婢W(wǎng)頁(yè)文字、圖片、Flash等。一鍵將網(wǎng)頁(yè)保存為WORD文件!您只需要點(diǎn)擊“Netboy,另存為WORD文件”,Netboy就會(huì )識別當前網(wǎng)頁(yè)的正文內容,然后將正文內容保存為WORD文件。完成了原本需要打開(kāi)WORD、選擇文本內容、復制、過(guò)濾格式、粘貼到WORD以及保存等一系列工作;自動(dòng)保存“下一頁(yè)” 現在網(wǎng)上的一篇文章往往是分頁(yè)顯示的。如果你想把這樣的一篇文章保存下來(lái),就需要一頁(yè)一頁(yè)的復制。Netboys 可以自動(dòng)保存下一頁(yè)并為您完成;當您在網(wǎng)上查找信息時(shí),會(huì )從不同的頁(yè)面中提取多個(gè)網(wǎng)頁(yè)的內容,并編譯在一個(gè)文件中,Netboy 集成了提取、采集
、編輯和保存的功能,大大提高了您的效率;批量保存網(wǎng)頁(yè) 批量保存多個(gè)鏈接中的網(wǎng)頁(yè)內容,并將這些內容保存到一個(gè)文件中;保存圖片 保存網(wǎng)頁(yè)中的所有圖片或多個(gè)鏈接中的所有圖片,并可根據圖片大小過(guò)濾文件,在多個(gè)鏈接中識別您關(guān)注的圖片;生成CHM電子書(shū)批量抓取網(wǎng)頁(yè),一鍵網(wǎng)頁(yè)合并生成CHM電子書(shū)。還可以使用CHM電子書(shū)對網(wǎng)頁(yè)進(jìn)行壓縮和存儲,避免保存太多不方便管理的網(wǎng)頁(yè);保存一個(gè)完整的網(wǎng)頁(yè)可以完整地保存收錄
動(dòng)態(tài)加載內容的網(wǎng)頁(yè)。netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間.
  現在下載 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(弘一網(wǎng)童2.7綠色注冊.rar智能化智能化的網(wǎng)頁(yè)保存工具)
  弘毅網(wǎng)子2.7 綠色注冊.rar
  智能網(wǎng)頁(yè)保存工具——WebPortero是一款集網(wǎng)頁(yè)抓取、內容識別、網(wǎng)頁(yè)編輯、格式轉換于一體的智能網(wǎng)頁(yè)保存工具??梢员4婢W(wǎng)頁(yè)文字、圖片、Flash等。一鍵將網(wǎng)頁(yè)保存為WORD文件!您只需要點(diǎn)擊“Netboy,另存為WORD文件”,Netboy就會(huì )識別當前網(wǎng)頁(yè)的正文內容,然后將正文內容保存為WORD文件。完成了原本需要打開(kāi)WORD、選擇文本內容、復制、過(guò)濾格式、粘貼到WORD以及保存等一系列工作;自動(dòng)保存“下一頁(yè)” 現在網(wǎng)上的一篇文章往往是分頁(yè)顯示的。如果你想把這樣的一篇文章保存下來(lái),就需要一頁(yè)一頁(yè)的復制。Netboys 可以自動(dòng)保存下一頁(yè)并為您完成;當您在網(wǎng)上查找信息時(shí),會(huì )從不同的頁(yè)面中提取多個(gè)網(wǎng)頁(yè)的內容,并編譯在一個(gè)文件中,Netboy 集成了提取、采集
、編輯和保存的功能,大大提高了您的效率;批量保存網(wǎng)頁(yè) 批量保存多個(gè)鏈接中的網(wǎng)頁(yè)內容,并將這些內容保存到一個(gè)文件中;保存圖片 保存網(wǎng)頁(yè)中的所有圖片或多個(gè)鏈接中的所有圖片,并可根據圖片大小過(guò)濾文件,在多個(gè)鏈接中識別您關(guān)注的圖片;生成CHM電子書(shū)批量抓取網(wǎng)頁(yè),一鍵網(wǎng)頁(yè)合并生成CHM電子書(shū)。還可以使用CHM電子書(shū)對網(wǎng)頁(yè)進(jìn)行壓縮和存儲,避免保存太多不方便管理的網(wǎng)頁(yè);保存一個(gè)完整的網(wǎng)頁(yè)可以完整地保存收錄
動(dòng)態(tài)加載內容的網(wǎng)頁(yè)。netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間.
  現在下載

抓取網(wǎng)頁(yè)生成電子書(shū)(mitmdump爬取“得到”App電子書(shū)信息(一)_Python學(xué)習 )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 112 次瀏覽 ? 2021-12-29 12:14 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(mitmdump爬取“得到”App電子書(shū)信息(一)_Python學(xué)習
)
  前言
  文章文字及圖片來(lái)自網(wǎng)絡(luò ),僅供學(xué)習交流之用。它們沒(méi)有任何商業(yè)用途。版權屬于原作者。如果您有任何問(wèn)題,請聯(lián)系我們進(jìn)行處理。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入
  mitmdump爬取“獲取”App電子書(shū)信息
  “Get”App是羅季思偉出品的碎片化時(shí)間學(xué)習App。應用中有很多學(xué)習資源。但是“獲取”App沒(méi)有對應的網(wǎng)頁(yè)版,只能通過(guò)App獲取信息。這次我們將通過(guò)抓取它的App來(lái)練習mitmdump的使用。
  抓取目標
  我們的爬取目標是App電子書(shū)版塊中的電子書(shū)信息,并將信息保存到MongoDB中,如圖。
  
  我們想爬下書(shū)名、介紹、封面、價(jià)格,但是這次爬取的重點(diǎn)是了解mitmdump工具的使用,所以暫時(shí)不涉及自動(dòng)爬取,操作應用程序仍然是手動(dòng)執行的。mitmdump 負責捕獲響應并提取和保存數據。
  2. 準備
  請確保您已經(jīng)正確安裝了mitmproxy和mitmdump,手機和PC在同一個(gè)局域網(wǎng)內,同時(shí)配置了mitmproxy的CA證書(shū),安裝了MongoDB并運行其服務(wù),安裝了PyMongo庫。具體配置請參考第一章說(shuō)明。
  3. 爬取分析
  首先查找URL,返回當前頁(yè)面的內容。我們寫(xiě)一個(gè)腳本如下:
  def response(flow):
print(flow.request.url)
print(flow.response.text)
  這里只輸出請求的URL和響應體內容,也就是請求鏈接和響應內容這兩個(gè)最關(guān)鍵的部分。腳本的名稱(chēng)保存為 script.py。
  接下來(lái)運行mitmdump,命令如下:
  mitmdump -s script.py
  打開(kāi)“Get”App的電子書(shū)頁(yè)面,在PC控制臺上可以看到相應的輸出。然后滑動(dòng)頁(yè)面加載更多電子書(shū),控制臺中出現的新輸出內容就是App發(fā)出的新加載請求,里面收錄
了下一頁(yè)的電子書(shū)內容??刂婆_輸出結果示例如圖所示。
  
  可以看到URL所在的界面,后面加了一個(gè)sign參數。通過(guò)URL的名稱(chēng),可以確定這是獲取電子書(shū)列表的接口。URL下面的輸出是響應內容,是一個(gè)JSON格式的字符串。我們將其格式化為如圖所示。
  
  格式化的內容收錄
ac 字段和一個(gè)列表字段。列表的每個(gè)元素都收錄
價(jià)格、標題、描述等,第一個(gè)返回結果是電子書(shū)《情人》,此時(shí)App的內容也是這本電子書(shū),描述的內容和價(jià)格也完全匹配。App頁(yè)面如圖所示。
  
  這意味著(zhù)當前接口是獲取電子書(shū)信息的接口,我們只需要從該接口獲取內容即可。然后解析返回的結果并將結果保存到數據庫中。
  4. 數據采集
  接下來(lái),我們需要對接口進(jìn)行過(guò)濾和限制,抓取上面分析的接口,然后在結果中提取相應的字段。
  在這里,我們修改腳本如下:
  import json
from mitmproxy import ctx

def response(flow):
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
ctx.log.info(str(book))
  再次滑動(dòng)電子書(shū)頁(yè)面,觀(guān)察PC控制臺上的輸出,如圖。
  
  控制臺輸出
  現在輸出圖書(shū)的所有信息,一個(gè)圖書(shū)信息對應一條JSON格式的數據。
  5. 提取并保存
  接下來(lái)我們需要提取信息,然后將信息保存到數據庫中。為方便起見(jiàn),我們選擇MongoDB數據庫。
  該腳本還可以添加用于提取信息和保存信息的部分。修改后的代碼如下:
  import json
import pymongo
from mitmproxy import ctx

client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]

def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data)
  再次滑動(dòng)頁(yè)面,控制臺會(huì )輸出信息,如圖。
  
  現在輸出的每一條內容都是提取出來(lái)的內容,包括電子書(shū)的書(shū)名、封面、描述、價(jià)格等信息。
  一開(kāi)始我們聲明了MongoDB的數據庫連接。提取信息后,調用對象的insert()方法將數據插入到數據庫中。
  滑動(dòng)幾頁(yè),發(fā)現所有書(shū)籍信息都保存在MongoDB中,如圖。
  
  至此,我們已經(jīng)使用了一個(gè)非常簡(jiǎn)單的腳本來(lái)保存“Get”App的電子書(shū)信息。
  代碼部分
  import json
import pymongo
from mitmproxy import ctx
client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]
def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {
&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data) 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(mitmdump爬取“得到”App電子書(shū)信息(一)_Python學(xué)習
)
  前言
  文章文字及圖片來(lái)自網(wǎng)絡(luò ),僅供學(xué)習交流之用。它們沒(méi)有任何商業(yè)用途。版權屬于原作者。如果您有任何問(wèn)題,請聯(lián)系我們進(jìn)行處理。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入
  mitmdump爬取“獲取”App電子書(shū)信息
  “Get”App是羅季思偉出品的碎片化時(shí)間學(xué)習App。應用中有很多學(xué)習資源。但是“獲取”App沒(méi)有對應的網(wǎng)頁(yè)版,只能通過(guò)App獲取信息。這次我們將通過(guò)抓取它的App來(lái)練習mitmdump的使用。
  抓取目標
  我們的爬取目標是App電子書(shū)版塊中的電子書(shū)信息,并將信息保存到MongoDB中,如圖。
  
  我們想爬下書(shū)名、介紹、封面、價(jià)格,但是這次爬取的重點(diǎn)是了解mitmdump工具的使用,所以暫時(shí)不涉及自動(dòng)爬取,操作應用程序仍然是手動(dòng)執行的。mitmdump 負責捕獲響應并提取和保存數據。
  2. 準備
  請確保您已經(jīng)正確安裝了mitmproxy和mitmdump,手機和PC在同一個(gè)局域網(wǎng)內,同時(shí)配置了mitmproxy的CA證書(shū),安裝了MongoDB并運行其服務(wù),安裝了PyMongo庫。具體配置請參考第一章說(shuō)明。
  3. 爬取分析
  首先查找URL,返回當前頁(yè)面的內容。我們寫(xiě)一個(gè)腳本如下:
  def response(flow):
print(flow.request.url)
print(flow.response.text)
  這里只輸出請求的URL和響應體內容,也就是請求鏈接和響應內容這兩個(gè)最關(guān)鍵的部分。腳本的名稱(chēng)保存為 script.py。
  接下來(lái)運行mitmdump,命令如下:
  mitmdump -s script.py
  打開(kāi)“Get”App的電子書(shū)頁(yè)面,在PC控制臺上可以看到相應的輸出。然后滑動(dòng)頁(yè)面加載更多電子書(shū),控制臺中出現的新輸出內容就是App發(fā)出的新加載請求,里面收錄
了下一頁(yè)的電子書(shū)內容??刂婆_輸出結果示例如圖所示。
  
  可以看到URL所在的界面,后面加了一個(gè)sign參數。通過(guò)URL的名稱(chēng),可以確定這是獲取電子書(shū)列表的接口。URL下面的輸出是響應內容,是一個(gè)JSON格式的字符串。我們將其格式化為如圖所示。
  
  格式化的內容收錄
ac 字段和一個(gè)列表字段。列表的每個(gè)元素都收錄
價(jià)格、標題、描述等,第一個(gè)返回結果是電子書(shū)《情人》,此時(shí)App的內容也是這本電子書(shū),描述的內容和價(jià)格也完全匹配。App頁(yè)面如圖所示。
  
  這意味著(zhù)當前接口是獲取電子書(shū)信息的接口,我們只需要從該接口獲取內容即可。然后解析返回的結果并將結果保存到數據庫中。
  4. 數據采集
  接下來(lái),我們需要對接口進(jìn)行過(guò)濾和限制,抓取上面分析的接口,然后在結果中提取相應的字段。
  在這里,我們修改腳本如下:
  import json
from mitmproxy import ctx

def response(flow):
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
ctx.log.info(str(book))
  再次滑動(dòng)電子書(shū)頁(yè)面,觀(guān)察PC控制臺上的輸出,如圖。
  
  控制臺輸出
  現在輸出圖書(shū)的所有信息,一個(gè)圖書(shū)信息對應一條JSON格式的數據。
  5. 提取并保存
  接下來(lái)我們需要提取信息,然后將信息保存到數據庫中。為方便起見(jiàn),我們選擇MongoDB數據庫。
  該腳本還可以添加用于提取信息和保存信息的部分。修改后的代碼如下:
  import json
import pymongo
from mitmproxy import ctx

client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]

def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data)
  再次滑動(dòng)頁(yè)面,控制臺會(huì )輸出信息,如圖。
  
  現在輸出的每一條內容都是提取出來(lái)的內容,包括電子書(shū)的書(shū)名、封面、描述、價(jià)格等信息。
  一開(kāi)始我們聲明了MongoDB的數據庫連接。提取信息后,調用對象的insert()方法將數據插入到數據庫中。
  滑動(dòng)幾頁(yè),發(fā)現所有書(shū)籍信息都保存在MongoDB中,如圖。
  
  至此,我們已經(jīng)使用了一個(gè)非常簡(jiǎn)單的腳本來(lái)保存“Get”App的電子書(shū)信息。
  代碼部分
  import json
import pymongo
from mitmproxy import ctx
client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]
def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {
&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data)

抓取網(wǎng)頁(yè)生成電子書(shū)(通過(guò)Python和爬蟲(chóng),可以完成怎樣的小工具?|知乎 )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 87 次瀏覽 ? 2021-12-29 12:13 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(通過(guò)Python和爬蟲(chóng),可以完成怎樣的小工具?|知乎
)
  總是有同學(xué)問(wèn)我在學(xué)習了Python基礎知識后是否不知道我可以做些什么來(lái)改進(jìn)。今天我就用一個(gè)小例子來(lái)告訴大家通過(guò)Python和爬蟲(chóng)可以完成什么樣的小工具。
  在知乎上,你一定關(guān)注過(guò)一些不錯的專(zhuān)欄(比如Crossin的編程課堂)。但如果有一天,你最喜歡的受訪(fǎng)者在網(wǎng)上被噴,你一怒之下刪帖,停止更新,你就看不到這些好內容了。雖然這是小概率事件(還沒(méi)有發(fā)生),但你可以準備下雨天。您可以將關(guān)注的專(zhuān)欄導出到電子書(shū),這樣您就可以離線(xiàn)閱讀,而不必擔心不小心刪除帖子。
  只需要工具和源碼的可以拉到文章底部獲取代碼。
  【最終效果】
  運行程序,輸入列的id,即網(wǎng)頁(yè)地址上的路徑:
  
  
  之后,程序會(huì )自動(dòng)抓取欄目?jì)鹊奈恼?,并根據發(fā)表時(shí)間合并導出為pdf文件。
  
  【實(shí)現思路】
  本方案主要分為三部分:
  爬取專(zhuān)欄文章地址列表 爬取每篇文章的詳細內容導出PDF 1. 爬取列表
  上一篇爬蟲(chóng)必備工具,掌握了它就可以解決介紹如何分析網(wǎng)頁(yè)請求的一半問(wèn)題。根據方法,我們可以使用開(kāi)發(fā)者工具的Network功能,找出欄目頁(yè)面的請求,獲取明細列表:
  
https://www.zhihu.com/api/v4/c ... icles
  
  觀(guān)察返回的結果,我們發(fā)現通過(guò)next和is_end的值,可以得到下一個(gè)列表請求的地址(相當于頁(yè)面向下滾動(dòng)的觸發(fā)效果),判斷是否拿到了所有的文章。
  data中的id、title、url就是我們需要的數據。因為url可以用id拼寫(xiě)出來(lái),所以沒(méi)有保存在我們的代碼中。
  
  使用 while 循環(huán)直到所有文章的 id 和標題都被提取并保存在文件中。
  
while True:
resp = requests.get(url, headers=headers)
j = resp.json()
data = j[&#39;data&#39;]
for article in data:
# 保存id和title(略)
if j[&#39;paging&#39;][&#39;is_end&#39;]:
break
url = j[&#39;paging&#39;][&#39;next&#39;]
# 按 id 排序(略)
# 導入文件(略)
  
  2. 獲取文章
  有了所有文章的id/url,后面的爬取就很簡(jiǎn)單了。文章的主要內容在 Post-RichText 標簽中。
  處理一些文字需要一點(diǎn)功夫,比如原頁(yè)面的圖片效果,會(huì )添加noscript標簽和`,highlight"&gt;
  
url = &#39;https://zhuanlan.zhihu.com/p/&#39; + id
html = requests.get(url, headers=headers).text
soup = BeautifulSoup(html, &#39;lxml&#39;)
content = soup.find(class_=&#39;Post-RichText&#39;).prettify()
# 對content做處理(略)
with open(file_name, &#39;w&#39;) as f:
f.write(content)
  
  到這一步,所有的內容都已經(jīng)抓取完畢,可以在本地讀取了。
  3. 導出 PDF
  為了方便閱讀,我們使用 wkhtmltopdf + pdfkit 將這些 HTML 文件打包成 PDF。
  wkhtmltopdf是一個(gè)將HTML轉為PDF的工具,需要單獨安裝。詳情請參閱其官方網(wǎng)站。
  pdfkit 是為此工具打包的 Python 庫,可以從 pip 安裝:
  
pip install pdfkit
  使用起來(lái)非常簡(jiǎn)單:
  
# 獲取htmls文件名列表(略)
pdfkit.from_file(sorted(htmls), &#39;zhihu.pdf&#39;)
  
  這樣就完成了整列的導出。
  不僅是知乎專(zhuān)欄,幾乎大部分的資訊網(wǎng)站都是通過(guò)1.抓取列表和2.抓取詳細內容這兩個(gè)步驟來(lái)采集
數據的。所以這個(gè)代碼只要稍加修改就可以在許多其他網(wǎng)站上使用。只是有些網(wǎng)站需要登錄后才能訪(fǎng)問(wèn),所以需要在headers中設置cookie信息。另外,不同網(wǎng)站的請求接口、參數、限制都不一樣,所以具體問(wèn)題還是要具體問(wèn)題具體分析。
  這些爬蟲(chóng)的開(kāi)發(fā)技巧可以在我們的爬蟲(chóng)實(shí)戰課中學(xué)習。需要的請回復公眾號中的實(shí)際爬蟲(chóng)
  【源碼下載】
  獲取知乎專(zhuān)欄下載器源碼請在公眾號回復知乎關(guān)鍵詞(Crossin的編程課堂)
  除了代碼,還有本專(zhuān)欄打包好的PDF,歡迎閱讀分享。
 ?。剑剑剑?br />   其他文章和答案:
  歡迎搜索關(guān)注:Crossin的編程課堂
   查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(通過(guò)Python和爬蟲(chóng),可以完成怎樣的小工具?|知乎
)
  總是有同學(xué)問(wèn)我在學(xué)習了Python基礎知識后是否不知道我可以做些什么來(lái)改進(jìn)。今天我就用一個(gè)小例子來(lái)告訴大家通過(guò)Python和爬蟲(chóng)可以完成什么樣的小工具。
  在知乎上,你一定關(guān)注過(guò)一些不錯的專(zhuān)欄(比如Crossin的編程課堂)。但如果有一天,你最喜歡的受訪(fǎng)者在網(wǎng)上被噴,你一怒之下刪帖,停止更新,你就看不到這些好內容了。雖然這是小概率事件(還沒(méi)有發(fā)生),但你可以準備下雨天。您可以將關(guān)注的專(zhuān)欄導出到電子書(shū),這樣您就可以離線(xiàn)閱讀,而不必擔心不小心刪除帖子。
  只需要工具和源碼的可以拉到文章底部獲取代碼。
  【最終效果】
  運行程序,輸入列的id,即網(wǎng)頁(yè)地址上的路徑:
  
  
  之后,程序會(huì )自動(dòng)抓取欄目?jì)鹊奈恼?,并根據發(fā)表時(shí)間合并導出為pdf文件。
  
  【實(shí)現思路】
  本方案主要分為三部分:
  爬取專(zhuān)欄文章地址列表 爬取每篇文章的詳細內容導出PDF 1. 爬取列表
  上一篇爬蟲(chóng)必備工具,掌握了它就可以解決介紹如何分析網(wǎng)頁(yè)請求的一半問(wèn)題。根據方法,我們可以使用開(kāi)發(fā)者工具的Network功能,找出欄目頁(yè)面的請求,獲取明細列表:
  
https://www.zhihu.com/api/v4/c ... icles
  
  觀(guān)察返回的結果,我們發(fā)現通過(guò)next和is_end的值,可以得到下一個(gè)列表請求的地址(相當于頁(yè)面向下滾動(dòng)的觸發(fā)效果),判斷是否拿到了所有的文章。
  data中的id、title、url就是我們需要的數據。因為url可以用id拼寫(xiě)出來(lái),所以沒(méi)有保存在我們的代碼中。
  
  使用 while 循環(huán)直到所有文章的 id 和標題都被提取并保存在文件中。
  
while True:
resp = requests.get(url, headers=headers)
j = resp.json()
data = j[&#39;data&#39;]
for article in data:
# 保存id和title(略)
if j[&#39;paging&#39;][&#39;is_end&#39;]:
break
url = j[&#39;paging&#39;][&#39;next&#39;]
# 按 id 排序(略)
# 導入文件(略)
  
  2. 獲取文章
  有了所有文章的id/url,后面的爬取就很簡(jiǎn)單了。文章的主要內容在 Post-RichText 標簽中。
  處理一些文字需要一點(diǎn)功夫,比如原頁(yè)面的圖片效果,會(huì )添加noscript標簽和`,highlight"&gt;
  
url = &#39;https://zhuanlan.zhihu.com/p/&#39; + id
html = requests.get(url, headers=headers).text
soup = BeautifulSoup(html, &#39;lxml&#39;)
content = soup.find(class_=&#39;Post-RichText&#39;).prettify()
# 對content做處理(略)
with open(file_name, &#39;w&#39;) as f:
f.write(content)
  
  到這一步,所有的內容都已經(jīng)抓取完畢,可以在本地讀取了。
  3. 導出 PDF
  為了方便閱讀,我們使用 wkhtmltopdf + pdfkit 將這些 HTML 文件打包成 PDF。
  wkhtmltopdf是一個(gè)將HTML轉為PDF的工具,需要單獨安裝。詳情請參閱其官方網(wǎng)站。
  pdfkit 是為此工具打包的 Python 庫,可以從 pip 安裝:
  
pip install pdfkit
  使用起來(lái)非常簡(jiǎn)單:
  
# 獲取htmls文件名列表(略)
pdfkit.from_file(sorted(htmls), &#39;zhihu.pdf&#39;)
  
  這樣就完成了整列的導出。
  不僅是知乎專(zhuān)欄,幾乎大部分的資訊網(wǎng)站都是通過(guò)1.抓取列表和2.抓取詳細內容這兩個(gè)步驟來(lái)采集
數據的。所以這個(gè)代碼只要稍加修改就可以在許多其他網(wǎng)站上使用。只是有些網(wǎng)站需要登錄后才能訪(fǎng)問(wèn),所以需要在headers中設置cookie信息。另外,不同網(wǎng)站的請求接口、參數、限制都不一樣,所以具體問(wèn)題還是要具體問(wèn)題具體分析。
  這些爬蟲(chóng)的開(kāi)發(fā)技巧可以在我們的爬蟲(chóng)實(shí)戰課中學(xué)習。需要的請回復公眾號中的實(shí)際爬蟲(chóng)
  【源碼下載】
  獲取知乎專(zhuān)欄下載器源碼請在公眾號回復知乎關(guān)鍵詞(Crossin的編程課堂)
  除了代碼,還有本專(zhuān)欄打包好的PDF,歡迎閱讀分享。
 ?。剑剑剑?br />   其他文章和答案:
  歡迎搜索關(guān)注:Crossin的編程課堂
  

抓取網(wǎng)頁(yè)生成電子書(shū)(主流電子書(shū)格式大家最為熟知的電子書(shū)熟知格式(圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2021-12-27 08:10 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(主流電子書(shū)格式大家最為熟知的電子書(shū)熟知格式(圖))
  編者按(@Minja):在寫(xiě)文章的時(shí)候,我們經(jīng)常需要引用和返回。對各種存檔和編輯工具的不滿(mǎn),讓我萌生了自己制作電子書(shū)的念頭。恰巧@Spencerwoo在這方面有扎實(shí)的折騰能力,于是擺脫了他,一起研究了一套簡(jiǎn)單易行的方法,寫(xiě)了一篇文章與大家分享。
  網(wǎng)絡(luò )世界雖然有很多有價(jià)值的文章,但并不是每一次閱讀體驗都令人滿(mǎn)意。如果您想擁有出色的文章閱讀體驗,您至少必須確保我們正在閱讀的文章:
  很多時(shí)候,我們依靠瀏覽器的閱讀方式,或者Pocket和RSS客戶(hù)端來(lái)閱讀。但是,稍后無(wú)法對閱讀模式進(jìn)行排序。大多數閱讀服務(wù)的全文搜索功能需要付費,網(wǎng)上的文章可能有一天找不到了。也許,將文章以電子書(shū)的形式保存在本地是一種更方便的回溯選擇。
  如果我們在網(wǎng)上看到一個(gè)網(wǎng)頁(yè)形式的電子書(shū),想把整個(gè)網(wǎng)頁(yè)直接保存在本地(俗稱(chēng)“剪輯”),那會(huì )很麻煩?,F有的網(wǎng)絡(luò )剪輯工具不僅可能夾帶無(wú)用的廣告和其他影響體驗的冗余區域,還可能丟失重要和有價(jià)值的內容。不僅如此,幾乎沒(méi)有任何工具可以輕松抓取圖片并自定義本地保存的文章樣式。那么,讓我向您介紹一套免費制作個(gè)性化電子書(shū)的方法。
  本文主要使用開(kāi)源工具Pandoc。對于需要MOBI或PDF格式電子書(shū)的讀者,文章后半部分也有簡(jiǎn)單的轉換方法。
  以ePub電子書(shū)為突破口
  主流的電子書(shū)格式有很多,但本文主要推薦ePub,它相對開(kāi)放通用,可以方便地轉換為其他格式。
  
  主流電子書(shū)格式
  或許最著(zhù)名的電子書(shū)格式是純文本TXT格式,但TXT之所以被稱(chēng)為“純文本”,是因為它不支持章節、圖片、封面和超鏈接。為了讓電子書(shū)有格式、有圖片、有內容,目前常見(jiàn)的電子書(shū)通常有PDF、ePub、MOBI三種格式。在:
  我們這篇文章的主要目的是利用接下來(lái)要介紹的工具,制作一個(gè)清晰美觀(guān)的電子書(shū),內嵌圖片、目錄、美圖。相對而言,ePub 更加靈活,目錄和自定義布局一應俱全,另外兩種格式轉換也方便。本文將從它開(kāi)始。
  
  電子書(shū)效果制作
  [……] 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(主流電子書(shū)格式大家最為熟知的電子書(shū)熟知格式(圖))
  編者按(@Minja):在寫(xiě)文章的時(shí)候,我們經(jīng)常需要引用和返回。對各種存檔和編輯工具的不滿(mǎn),讓我萌生了自己制作電子書(shū)的念頭。恰巧@Spencerwoo在這方面有扎實(shí)的折騰能力,于是擺脫了他,一起研究了一套簡(jiǎn)單易行的方法,寫(xiě)了一篇文章與大家分享。
  網(wǎng)絡(luò )世界雖然有很多有價(jià)值的文章,但并不是每一次閱讀體驗都令人滿(mǎn)意。如果您想擁有出色的文章閱讀體驗,您至少必須確保我們正在閱讀的文章:
  很多時(shí)候,我們依靠瀏覽器的閱讀方式,或者Pocket和RSS客戶(hù)端來(lái)閱讀。但是,稍后無(wú)法對閱讀模式進(jìn)行排序。大多數閱讀服務(wù)的全文搜索功能需要付費,網(wǎng)上的文章可能有一天找不到了。也許,將文章以電子書(shū)的形式保存在本地是一種更方便的回溯選擇。
  如果我們在網(wǎng)上看到一個(gè)網(wǎng)頁(yè)形式的電子書(shū),想把整個(gè)網(wǎng)頁(yè)直接保存在本地(俗稱(chēng)“剪輯”),那會(huì )很麻煩?,F有的網(wǎng)絡(luò )剪輯工具不僅可能夾帶無(wú)用的廣告和其他影響體驗的冗余區域,還可能丟失重要和有價(jià)值的內容。不僅如此,幾乎沒(méi)有任何工具可以輕松抓取圖片并自定義本地保存的文章樣式。那么,讓我向您介紹一套免費制作個(gè)性化電子書(shū)的方法。
  本文主要使用開(kāi)源工具Pandoc。對于需要MOBI或PDF格式電子書(shū)的讀者,文章后半部分也有簡(jiǎn)單的轉換方法。
  以ePub電子書(shū)為突破口
  主流的電子書(shū)格式有很多,但本文主要推薦ePub,它相對開(kāi)放通用,可以方便地轉換為其他格式。
  
  主流電子書(shū)格式
  或許最著(zhù)名的電子書(shū)格式是純文本TXT格式,但TXT之所以被稱(chēng)為“純文本”,是因為它不支持章節、圖片、封面和超鏈接。為了讓電子書(shū)有格式、有圖片、有內容,目前常見(jiàn)的電子書(shū)通常有PDF、ePub、MOBI三種格式。在:
  我們這篇文章的主要目的是利用接下來(lái)要介紹的工具,制作一個(gè)清晰美觀(guān)的電子書(shū),內嵌圖片、目錄、美圖。相對而言,ePub 更加靈活,目錄和自定義布局一應俱全,另外兩種格式轉換也方便。本文將從它開(kāi)始。
  
  電子書(shū)效果制作
  [……]

抓取網(wǎng)頁(yè)生成電子書(shū)(廖雪峰的Python教程爬下來(lái)做成PDF電子書(shū)方便大家離線(xiàn)閱讀)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 89 次瀏覽 ? 2021-12-25 00:05 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(廖雪峰的Python教程爬下來(lái)做成PDF電子書(shū)方便大家離線(xiàn)閱讀)
  寫(xiě)爬蟲(chóng)似乎并不比使用Python更合適。Python社區提供的爬蟲(chóng)工具讓你眼花繚亂。各種可以直接使用的庫,分分鐘寫(xiě)一個(gè)爬蟲(chóng)。今天想寫(xiě)一個(gè)爬蟲(chóng)。, 爬下廖雪峰的Python教程,做成PDF電子書(shū)供離線(xiàn)閱讀。
  在開(kāi)始寫(xiě)爬蟲(chóng)之前,我們先來(lái)分析一下網(wǎng)站1的頁(yè)面結構。頁(yè)面左側為教程目錄大綱。每個(gè)URL對應右邊文章的一篇文章,右上角是文章的標題,中間是文章的正文部分。正文內容是我們關(guān)注的重點(diǎn)。我們要抓取的數據是所有網(wǎng)頁(yè)的正文部分。下面是用戶(hù)的評論區。評論區對我們來(lái)說(shuō)沒(méi)用,可以無(wú)視。
  
  工具準備
  搞清楚網(wǎng)站的基本結構后,就可以開(kāi)始準備爬蟲(chóng)所依賴(lài)的工具包了。requests和beautifulsoup是爬蟲(chóng)的兩大神器,reuqests用于網(wǎng)絡(luò )請求,beautifulsoup用于操作html數據。有了這兩個(gè)班車(chē),我們就可以順利工作了。我們不需要像scrapy這樣的爬蟲(chóng)框架。小程序有點(diǎn)大錘。另外,既然是把html文件轉成pdf,就得有相應的庫支持。wkhtmltopdf 是一個(gè)非常好的工具。它可用于從 html 到 pdf 的多平臺轉換。pdfkit 是 wkhtmltopdf 的 Python 包。先安裝以下依賴(lài)包,然后安裝wkhtmltopdf
  pip install requests
pip install beautifulsoup
pip install pdfkit
  安裝 wkhtmltopdf
  Windows平臺直接從wkhtmltopdf官網(wǎng)下載穩定版2進(jìn)行安裝。安裝完成后,將程序的執行路徑添加到系統環(huán)境$PATH變量中,否則pdfkit找不到wkhtmltopdf并出現“No wkhtmltopdf executable found”的錯誤提示。Ubuntu 和 CentOS 可以直接從命令行安裝
  $ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf # centos
  爬蟲(chóng)實(shí)現
  一切準備就緒后,就可以開(kāi)始編寫(xiě)代碼了,但是在編寫(xiě)代碼之前,我們先來(lái)梳理一下您的想法。該程序的目的是將URL對應的所有html body部分保存到本地,然后使用pdfkit將這些文件轉換成pdf文件。讓我們拆分任務(wù)。首先將某個(gè)URL對應的html body保存到本地,然后找到所有的URL進(jìn)行同樣的操作。
  使用Chrome瀏覽器找到頁(yè)面body部分的標簽,按F12找到body對應的div標簽:
  ,div是網(wǎng)頁(yè)的正文內容。使用requests在本地加載整個(gè)頁(yè)面后,可以使用beautifulsoup操作HTML的dom元素來(lái)提取body內容。
  
  具體實(shí)現代碼如下: 使用soup.find_all函數查找body標簽,然后將body部分的內容保存在a.html文件中。
  def parse_url_to_html(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, "html5lib")
body = soup.find_all(class_="x-wiki-content")[0]
html = str(body)
with open("a.html", &#39;wb&#39;) as f:
f.write(html)
  第二步是解析出頁(yè)面左側的所有URL。同樣的方法,找到左邊的菜單標簽 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(廖雪峰的Python教程爬下來(lái)做成PDF電子書(shū)方便大家離線(xiàn)閱讀)
  寫(xiě)爬蟲(chóng)似乎并不比使用Python更合適。Python社區提供的爬蟲(chóng)工具讓你眼花繚亂。各種可以直接使用的庫,分分鐘寫(xiě)一個(gè)爬蟲(chóng)。今天想寫(xiě)一個(gè)爬蟲(chóng)。, 爬下廖雪峰的Python教程,做成PDF電子書(shū)供離線(xiàn)閱讀。
  在開(kāi)始寫(xiě)爬蟲(chóng)之前,我們先來(lái)分析一下網(wǎng)站1的頁(yè)面結構。頁(yè)面左側為教程目錄大綱。每個(gè)URL對應右邊文章的一篇文章,右上角是文章的標題,中間是文章的正文部分。正文內容是我們關(guān)注的重點(diǎn)。我們要抓取的數據是所有網(wǎng)頁(yè)的正文部分。下面是用戶(hù)的評論區。評論區對我們來(lái)說(shuō)沒(méi)用,可以無(wú)視。
  
  工具準備
  搞清楚網(wǎng)站的基本結構后,就可以開(kāi)始準備爬蟲(chóng)所依賴(lài)的工具包了。requests和beautifulsoup是爬蟲(chóng)的兩大神器,reuqests用于網(wǎng)絡(luò )請求,beautifulsoup用于操作html數據。有了這兩個(gè)班車(chē),我們就可以順利工作了。我們不需要像scrapy這樣的爬蟲(chóng)框架。小程序有點(diǎn)大錘。另外,既然是把html文件轉成pdf,就得有相應的庫支持。wkhtmltopdf 是一個(gè)非常好的工具。它可用于從 html 到 pdf 的多平臺轉換。pdfkit 是 wkhtmltopdf 的 Python 包。先安裝以下依賴(lài)包,然后安裝wkhtmltopdf
  pip install requests
pip install beautifulsoup
pip install pdfkit
  安裝 wkhtmltopdf
  Windows平臺直接從wkhtmltopdf官網(wǎng)下載穩定版2進(jìn)行安裝。安裝完成后,將程序的執行路徑添加到系統環(huán)境$PATH變量中,否則pdfkit找不到wkhtmltopdf并出現“No wkhtmltopdf executable found”的錯誤提示。Ubuntu 和 CentOS 可以直接從命令行安裝
  $ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf # centos
  爬蟲(chóng)實(shí)現
  一切準備就緒后,就可以開(kāi)始編寫(xiě)代碼了,但是在編寫(xiě)代碼之前,我們先來(lái)梳理一下您的想法。該程序的目的是將URL對應的所有html body部分保存到本地,然后使用pdfkit將這些文件轉換成pdf文件。讓我們拆分任務(wù)。首先將某個(gè)URL對應的html body保存到本地,然后找到所有的URL進(jìn)行同樣的操作。
  使用Chrome瀏覽器找到頁(yè)面body部分的標簽,按F12找到body對應的div標簽:
  ,div是網(wǎng)頁(yè)的正文內容。使用requests在本地加載整個(gè)頁(yè)面后,可以使用beautifulsoup操作HTML的dom元素來(lái)提取body內容。
  
  具體實(shí)現代碼如下: 使用soup.find_all函數查找body標簽,然后將body部分的內容保存在a.html文件中。
  def parse_url_to_html(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, "html5lib")
body = soup.find_all(class_="x-wiki-content")[0]
html = str(body)
with open("a.html", &#39;wb&#39;) as f:
f.write(html)
  第二步是解析出頁(yè)面左側的所有URL。同樣的方法,找到左邊的菜單標簽

抓取網(wǎng)頁(yè)生成電子書(shū)(制作一個(gè)最新文章列表減少蜘蛛爬行的步驟【模板】)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2021-12-25 00:04 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(制作一個(gè)最新文章列表減少蜘蛛爬行的步驟【模板】)
  最近在研究垃圾站采集和搜索引擎收錄的關(guān)系。因為一天的采集數量很多,雖然首頁(yè)有的地方調用了最新的文章,但是調用的數據只有幾條,遠不是成百上千的采集 每天的內容。
  由于采集返回的內容太多,專(zhuān)欄的列表頁(yè)每天會(huì )增加幾頁(yè)。如果蜘蛛逐頁(yè)爬行,會(huì )增加訪(fǎng)問(wèn)目標頁(yè)面的難度,因此萌發(fā)了制作一個(gè)最新的文章列表,減少了蜘蛛爬行的步驟。通過(guò)首頁(yè),訪(fǎng)問(wèn)最新的文章列表頁(yè)面,然后可以到最后的文章頁(yè)面,應該有利于搜索引擎爬取和收錄,在性質(zhì)為 xml 映射,但這只是 HTML 頁(yè)面。
  演示地址:
  修改方法:
  1、下載壓縮包,解壓后上傳到根目錄。
  2、進(jìn)入網(wǎng)站后臺核心-&gt;通道模型-&gt;添加單頁(yè)文檔管理頁(yè)面。
  3、頁(yè)面標題、頁(yè)面關(guān)鍵詞和頁(yè)面摘要信息根據自己網(wǎng)站的情況填寫(xiě),模板名和文件名參考下圖,編輯中無(wú)需添加任何內容框,我已經(jīng)在模板中給你設置好了。
  <IMG class="size-full wp-image-1171 aligncenter" title=增加新頁(yè)面 alt="" src="http://image39.360doc.com/Down ... ot%3B width=500 height=344>
  4、設置好后點(diǎn)擊確定,會(huì )在網(wǎng)站的根目錄下生成一個(gè)sitemap.html頁(yè)面。生成頁(yè)面的名稱(chēng)和位置可以在文件名中自定義。
  5、還沒(méi)有自動(dòng)更新。下次加一些代碼實(shí)現自動(dòng)更新?,F在需要進(jìn)入單頁(yè)文檔管理手動(dòng)更新。
  您可以根據需要編輯模板文件中的代碼以更改數據條目和行數。
  {dede:arclist row='50' col='1' orderby=pubdate}
  [字段:標題/]
  {/dede:arclist}
  您還可以創(chuàng )建一個(gè)沒(méi)有圖片的簡(jiǎn)單導航頁(yè)面。
  在模板的底部,有一個(gè)織夢(mèng) 管理員主頁(yè)的鏈接。如果您認為鏈接的存在會(huì )對您產(chǎn)生影響,您可以隨意刪除。如果你覺(jué)得這個(gè)方法對你有幫助,希望你能留下鏈接。也是對我最大的支持,謝謝。
  如果您遇到任何問(wèn)題,您可以給我留言。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(制作一個(gè)最新文章列表減少蜘蛛爬行的步驟【模板】)
  最近在研究垃圾站采集和搜索引擎收錄的關(guān)系。因為一天的采集數量很多,雖然首頁(yè)有的地方調用了最新的文章,但是調用的數據只有幾條,遠不是成百上千的采集 每天的內容。
  由于采集返回的內容太多,專(zhuān)欄的列表頁(yè)每天會(huì )增加幾頁(yè)。如果蜘蛛逐頁(yè)爬行,會(huì )增加訪(fǎng)問(wèn)目標頁(yè)面的難度,因此萌發(fā)了制作一個(gè)最新的文章列表,減少了蜘蛛爬行的步驟。通過(guò)首頁(yè),訪(fǎng)問(wèn)最新的文章列表頁(yè)面,然后可以到最后的文章頁(yè)面,應該有利于搜索引擎爬取和收錄,在性質(zhì)為 xml 映射,但這只是 HTML 頁(yè)面。
  演示地址:
  修改方法:
  1、下載壓縮包,解壓后上傳到根目錄。
  2、進(jìn)入網(wǎng)站后臺核心-&gt;通道模型-&gt;添加單頁(yè)文檔管理頁(yè)面。
  3、頁(yè)面標題、頁(yè)面關(guān)鍵詞和頁(yè)面摘要信息根據自己網(wǎng)站的情況填寫(xiě),模板名和文件名參考下圖,編輯中無(wú)需添加任何內容框,我已經(jīng)在模板中給你設置好了。
  <IMG class="size-full wp-image-1171 aligncenter" title=增加新頁(yè)面 alt="" src="http://image39.360doc.com/Down ... ot%3B width=500 height=344>
  4、設置好后點(diǎn)擊確定,會(huì )在網(wǎng)站的根目錄下生成一個(gè)sitemap.html頁(yè)面。生成頁(yè)面的名稱(chēng)和位置可以在文件名中自定義。
  5、還沒(méi)有自動(dòng)更新。下次加一些代碼實(shí)現自動(dòng)更新?,F在需要進(jìn)入單頁(yè)文檔管理手動(dòng)更新。
  您可以根據需要編輯模板文件中的代碼以更改數據條目和行數。
  {dede:arclist row='50' col='1' orderby=pubdate}
  [字段:標題/]
  {/dede:arclist}
  您還可以創(chuàng )建一個(gè)沒(méi)有圖片的簡(jiǎn)單導航頁(yè)面。
  在模板的底部,有一個(gè)織夢(mèng) 管理員主頁(yè)的鏈接。如果您認為鏈接的存在會(huì )對您產(chǎn)生影響,您可以隨意刪除。如果你覺(jué)得這個(gè)方法對你有幫助,希望你能留下鏈接。也是對我最大的支持,謝謝。
  如果您遇到任何問(wèn)題,您可以給我留言。

抓取網(wǎng)頁(yè)生成電子書(shū)(calibre-E-bookmanagement怎么做代碼Git教程)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2021-12-25 00:03 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(calibre-E-bookmanagement怎么做代碼Git教程)
  calibre-電子書(shū)管理是一款非常強大的電子書(shū)管理軟件。它可以打開(kāi)和轉換各種格式的電子書(shū),抓取新聞到本地閱讀,并允許用戶(hù)自定義新聞來(lái)源。抓取網(wǎng)頁(yè)內容并生成電子書(shū)。利用這個(gè)功能,我制作了廖雪峰老師的Python教程和Git教程的epub電子書(shū)。使用firefox的epubReader插件,可以在電腦上打開(kāi)閱讀。您也可以在 Internet 上閱讀。這種體驗非常適合沒(méi)有互聯(lián)網(wǎng)但想學(xué)習的學(xué)生。
  食譜是用python編寫(xiě)的。用學(xué)過(guò)的python獲取學(xué)習資源,加強實(shí)踐。操作方法非常簡(jiǎn)單。下載calibre-電子書(shū)管理就知道了。Calibre 還提供了用于配方準備的 api 文檔。
  下面是獲取python教程的配方代碼
  #!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
class liaoxuefeng_python(BasicNewsRecipe):
title = '廖雪峰Python教程'
description = 'python教程'
max_articles_per_feed = 200
url_prefix = 'http://www.liaoxuefeng.com'
no_stylesheets = True
keep_only_tags = [{ 'id': 'main' }]
remove_tags=[{'class':'x-wiki-info'}]
remove_tags_after=[{'class':'x-wiki-content x-content'}]

def get_title(self, link):
return link.contents[0].strip()

def parse_index(self):
soup = self.index_to_soup('http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000')

div = soup.find('div', { 'class': 'x-wiki-tree' })

articles = []
for link in div.findAll('a'):
til = self.get_title(link)
url = self.url_prefix + link['href']
a = { 'title': til, 'url': url }

articles.append(a)

tutorial = [('廖雪峰python教程', articles)]

return tutorial
  抓取Git教程只需要將parse_index方法中python教程的鏈接改成Git教程的鏈接即可。成品在本教程中 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(calibre-E-bookmanagement怎么做代碼Git教程)
  calibre-電子書(shū)管理是一款非常強大的電子書(shū)管理軟件。它可以打開(kāi)和轉換各種格式的電子書(shū),抓取新聞到本地閱讀,并允許用戶(hù)自定義新聞來(lái)源。抓取網(wǎng)頁(yè)內容并生成電子書(shū)。利用這個(gè)功能,我制作了廖雪峰老師的Python教程和Git教程的epub電子書(shū)。使用firefox的epubReader插件,可以在電腦上打開(kāi)閱讀。您也可以在 Internet 上閱讀。這種體驗非常適合沒(méi)有互聯(lián)網(wǎng)但想學(xué)習的學(xué)生。
  食譜是用python編寫(xiě)的。用學(xué)過(guò)的python獲取學(xué)習資源,加強實(shí)踐。操作方法非常簡(jiǎn)單。下載calibre-電子書(shū)管理就知道了。Calibre 還提供了用于配方準備的 api 文檔。
  下面是獲取python教程的配方代碼
  #!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
class liaoxuefeng_python(BasicNewsRecipe):
title = '廖雪峰Python教程'
description = 'python教程'
max_articles_per_feed = 200
url_prefix = 'http://www.liaoxuefeng.com'
no_stylesheets = True
keep_only_tags = [{ 'id': 'main' }]
remove_tags=[{'class':'x-wiki-info'}]
remove_tags_after=[{'class':'x-wiki-content x-content'}]

def get_title(self, link):
return link.contents[0].strip()

def parse_index(self):
soup = self.index_to_soup('http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000')

div = soup.find('div', { 'class': 'x-wiki-tree' })

articles = []
for link in div.findAll('a'):
til = self.get_title(link)
url = self.url_prefix + link['href']
a = { 'title': til, 'url': url }

articles.append(a)

tutorial = [('廖雪峰python教程', articles)]

return tutorial
  抓取Git教程只需要將parse_index方法中python教程的鏈接改成Git教程的鏈接即可。成品在本教程中

抓取網(wǎng)頁(yè)生成電子書(shū)(是不是有時(shí)星球內容太多刷不過(guò)來(lái)?想把星球精華內容擼下來(lái))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-01-14 07:01 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(是不是有時(shí)星球內容太多刷不過(guò)來(lái)?想把星球精華內容擼下來(lái))
  是不是有時(shí)候地球上的內容太多無(wú)法刷新?你想制作一本收錄地球本質(zhì)的電子書(shū)嗎?
  本文將帶你實(shí)現使用Python爬取星球內容,制作PDF電子書(shū)。
  第一個(gè)效果:
  
  內容以?xún)?yōu)化為主,主要優(yōu)化內容在于翻頁(yè)時(shí)間的處理、大空白的處理、評論的抓取、超鏈接的處理。
  說(shuō)到隱私問(wèn)題,這里我們以自由星球“萬(wàn)人學(xué)習分享群”為爬取對象。
  過(guò)程分析模擬登錄
  爬行是知識星球的網(wǎng)絡(luò )版本。
  這個(gè)網(wǎng)站不依賴(lài)cookie來(lái)判斷你是否登錄,而是請求頭中的Authorization字段。
  因此,您需要將 Authorization 和 User-Agent 替換為您自己的。(注意User-Agent也應該換成你自己的)
  一般來(lái)說(shuō),星球使用微信掃碼登錄后,可以獲得一個(gè)Authorization。這首歌長(cháng)期有效。無(wú)論如何,它真的很長(cháng)。
  1
2
3
4
5
6
7
8
9
  headers = {
'Authorization': 'C08AEDBB-A627-F9F1-1223-7E212B1C9D7D',
'x-request-id': "7b898dff-e40f-578e-6cfd-9687a3a32e49",
'accept': "application/json, text/plain, */*",
'host': "api.zsxq.com",
'connection': "keep-alive",
'referer': "https://wx.zsxq.com/dweb/",
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
}
  頁(yè)面內容分析
  登錄成功后,我一般使用右鍵,查看或者查看源碼。
  但是這個(gè)頁(yè)面比較特殊,它并沒(méi)有把內容放到當前地址欄的URL下面,而是異步加載(XHR),只要你找到合適的界面。
  精華區界面:
  這個(gè)界面是最新的20條數據,后面的數據對應不同的界面,就是后面要說(shuō)的翻頁(yè)。
  創(chuàng )建 PDF 電子書(shū)
  需要安裝的模塊:
  wkhtmltopdf 用于導出 PDF。安裝后可以使用命令生成PDF,例如:wkhtmltopdf google.pdfpdfkit,它是python對wkhtmltopdf調用的封裝,支持URL、本地文件、文本內容到PDF的轉換,實(shí)際轉換還是最終調用wkhtmltopdf命令
  本來(lái),精華區是沒(méi)有稱(chēng)號的。我用每個(gè)問(wèn)題的前 6 個(gè)字符作為標題來(lái)區分不同的問(wèn)題。
  抓取圖片
  很明顯,返回數據中的images key就是圖片,只需要提取大的、高清的url即可。
  關(guān)鍵是將圖像標簽 img 插入到 HTML 文檔中。我使用 BeautifulSoup 操作 DOM 的方式。
  需要注意的是,圖片可能不止一張,所以需要使用for循環(huán)來(lái)遍歷所有的圖片。
  1
2
3
4
5
6
7
8
  if content.get('images'):
soup = BeautifulSoup(html_template, 'html.parser')
for img in content.get('images'):
url = img.get('large').get('url')
img_tag = soup.new_tag('img', src=url)
soup.body.append(img_tag)
html_img = str(soup)
html = html_img.format(title=title, text=text)
  制作精美的 PDF
  通過(guò)css樣式控制字體大小、布局、顏色等,詳見(jiàn)test.css文件。
  然后將此文件導入選項字段。
  1
2
3
4
  options = {
"user-style-sheet": "test.css",
...
}
  難度分析翻頁(yè)邏輯
  爬取地址為:{url}?scope=digests&amp;count=20&amp;end_time=2018-04-12T15%3A49%3A13.443%2B0800
  路徑后面的 end_time 表示最后一次加載帖子以實(shí)現翻頁(yè)的日期。
  end_time 是 url 轉義的,可以通過(guò) urllib.parse.quote 方法進(jìn)行轉義。關(guān)鍵是要找出 end_time 的來(lái)源。
  仔細觀(guān)察后發(fā)現,每個(gè)請求返回20個(gè)post,最后一個(gè)post與下一個(gè)鏈接的end_time有關(guān)。
  比如上一個(gè)帖子的create_time是2018-01-10T11:49:39.668+0800,那么下一個(gè)鏈接的end_time是2018-01-10T11:49:39. 667+0800,注意一個(gè)668和一個(gè)667是不一樣的,所以我們得到end_time的公式:
  1
  end_time = create_time[:20]+str(int(create_time[20:23])-1)+create_time[23:]
  但事情并沒(méi)有那么簡(jiǎn)單,因為最后的create_time可能是2018-03-06T22%3A29%3A59.000%2B0800,-1后面出現一個(gè)負數!
  由于0可能出現在時(shí)分秒中,看來(lái)最好的方法是使用時(shí)間模塊datetime獲取create_time的最后一秒,如果出現000則拼接999。
  1
2
3
4
5
6
7
8
9
10
  # int -1 后需要進(jìn)行補 0 處理,test_str.zfill(3)
end_time = create_time[:20]+str(int(create_time[20:23])-1).zfill(3)+create_time[23:]
# 時(shí)間出現整點(diǎn)時(shí)需要特殊處理,否則會(huì )出現 -1
if create_time[20:23] == '000':
temp_time = datetime.datetime.strptime(create_time, "%Y-%m-%dT%H:%M:%S.%f+0800")
temp_time += datetime.timedelta(seconds=-1)
end_time = temp_time.strftime("%Y-%m-%dT%H:%M:%S") + '.999+0800'
end_time = quote(end_time)
next_url = start_url + '&end_time=' + end_time
  處理過(guò)程有點(diǎn)冗長(cháng)。原諒我落后的000。我沒(méi)有找到直接的方法來(lái)處理它。我只能通過(guò)這條曲線(xiàn)拯救國家。
  判斷最后一頁(yè)
  翻頁(yè)返回的數據為:
  1
  {"succeeded":true,"resp_data":{"topics":[]}}
  因此,使用 next_page = rsp.json().get('resp_data').get('topics') 來(lái)判斷是否有下一頁(yè)。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(是不是有時(shí)星球內容太多刷不過(guò)來(lái)?想把星球精華內容擼下來(lái))
  是不是有時(shí)候地球上的內容太多無(wú)法刷新?你想制作一本收錄地球本質(zhì)的電子書(shū)嗎?
  本文將帶你實(shí)現使用Python爬取星球內容,制作PDF電子書(shū)。
  第一個(gè)效果:
  
  內容以?xún)?yōu)化為主,主要優(yōu)化內容在于翻頁(yè)時(shí)間的處理、大空白的處理、評論的抓取、超鏈接的處理。
  說(shuō)到隱私問(wèn)題,這里我們以自由星球“萬(wàn)人學(xué)習分享群”為爬取對象。
  過(guò)程分析模擬登錄
  爬行是知識星球的網(wǎng)絡(luò )版本。
  這個(gè)網(wǎng)站不依賴(lài)cookie來(lái)判斷你是否登錄,而是請求頭中的Authorization字段。
  因此,您需要將 Authorization 和 User-Agent 替換為您自己的。(注意User-Agent也應該換成你自己的)
  一般來(lái)說(shuō),星球使用微信掃碼登錄后,可以獲得一個(gè)Authorization。這首歌長(cháng)期有效。無(wú)論如何,它真的很長(cháng)。
  1
2
3
4
5
6
7
8
9
  headers = {
'Authorization': 'C08AEDBB-A627-F9F1-1223-7E212B1C9D7D',
'x-request-id': "7b898dff-e40f-578e-6cfd-9687a3a32e49",
'accept': "application/json, text/plain, */*",
'host': "api.zsxq.com",
'connection': "keep-alive",
'referer': "https://wx.zsxq.com/dweb/",
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
}
  頁(yè)面內容分析
  登錄成功后,我一般使用右鍵,查看或者查看源碼。
  但是這個(gè)頁(yè)面比較特殊,它并沒(méi)有把內容放到當前地址欄的URL下面,而是異步加載(XHR),只要你找到合適的界面。
  精華區界面:
  這個(gè)界面是最新的20條數據,后面的數據對應不同的界面,就是后面要說(shuō)的翻頁(yè)。
  創(chuàng )建 PDF 電子書(shū)
  需要安裝的模塊:
  wkhtmltopdf 用于導出 PDF。安裝后可以使用命令生成PDF,例如:wkhtmltopdf google.pdfpdfkit,它是python對wkhtmltopdf調用的封裝,支持URL、本地文件、文本內容到PDF的轉換,實(shí)際轉換還是最終調用wkhtmltopdf命令
  本來(lái),精華區是沒(méi)有稱(chēng)號的。我用每個(gè)問(wèn)題的前 6 個(gè)字符作為標題來(lái)區分不同的問(wèn)題。
  抓取圖片
  很明顯,返回數據中的images key就是圖片,只需要提取大的、高清的url即可。
  關(guān)鍵是將圖像標簽 img 插入到 HTML 文檔中。我使用 BeautifulSoup 操作 DOM 的方式。
  需要注意的是,圖片可能不止一張,所以需要使用for循環(huán)來(lái)遍歷所有的圖片。
  1
2
3
4
5
6
7
8
  if content.get('images'):
soup = BeautifulSoup(html_template, 'html.parser')
for img in content.get('images'):
url = img.get('large').get('url')
img_tag = soup.new_tag('img', src=url)
soup.body.append(img_tag)
html_img = str(soup)
html = html_img.format(title=title, text=text)
  制作精美的 PDF
  通過(guò)css樣式控制字體大小、布局、顏色等,詳見(jiàn)test.css文件。
  然后將此文件導入選項字段。
  1
2
3
4
  options = {
"user-style-sheet": "test.css",
...
}
  難度分析翻頁(yè)邏輯
  爬取地址為:{url}?scope=digests&amp;count=20&amp;end_time=2018-04-12T15%3A49%3A13.443%2B0800
  路徑后面的 end_time 表示最后一次加載帖子以實(shí)現翻頁(yè)的日期。
  end_time 是 url 轉義的,可以通過(guò) urllib.parse.quote 方法進(jìn)行轉義。關(guān)鍵是要找出 end_time 的來(lái)源。
  仔細觀(guān)察后發(fā)現,每個(gè)請求返回20個(gè)post,最后一個(gè)post與下一個(gè)鏈接的end_time有關(guān)。
  比如上一個(gè)帖子的create_time是2018-01-10T11:49:39.668+0800,那么下一個(gè)鏈接的end_time是2018-01-10T11:49:39. 667+0800,注意一個(gè)668和一個(gè)667是不一樣的,所以我們得到end_time的公式:
  1
  end_time = create_time[:20]+str(int(create_time[20:23])-1)+create_time[23:]
  但事情并沒(méi)有那么簡(jiǎn)單,因為最后的create_time可能是2018-03-06T22%3A29%3A59.000%2B0800,-1后面出現一個(gè)負數!
  由于0可能出現在時(shí)分秒中,看來(lái)最好的方法是使用時(shí)間模塊datetime獲取create_time的最后一秒,如果出現000則拼接999。
  1
2
3
4
5
6
7
8
9
10
  # int -1 后需要進(jìn)行補 0 處理,test_str.zfill(3)
end_time = create_time[:20]+str(int(create_time[20:23])-1).zfill(3)+create_time[23:]
# 時(shí)間出現整點(diǎn)時(shí)需要特殊處理,否則會(huì )出現 -1
if create_time[20:23] == '000':
temp_time = datetime.datetime.strptime(create_time, "%Y-%m-%dT%H:%M:%S.%f+0800")
temp_time += datetime.timedelta(seconds=-1)
end_time = temp_time.strftime("%Y-%m-%dT%H:%M:%S") + '.999+0800'
end_time = quote(end_time)
next_url = start_url + '&end_time=' + end_time
  處理過(guò)程有點(diǎn)冗長(cháng)。原諒我落后的000。我沒(méi)有找到直接的方法來(lái)處理它。我只能通過(guò)這條曲線(xiàn)拯救國家。
  判斷最后一頁(yè)
  翻頁(yè)返回的數據為:
  1
  {"succeeded":true,"resp_data":{"topics":[]}}
  因此,使用 next_page = rsp.json().get('resp_data').get('topics') 來(lái)判斷是否有下一頁(yè)。

抓取網(wǎng)頁(yè)生成電子書(shū)(本文實(shí)例講述Python實(shí)現抓取網(wǎng)頁(yè)生成Excel文件的方法。)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 99 次瀏覽 ? 2022-01-09 21:20 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(本文實(shí)例講述Python實(shí)現抓取網(wǎng)頁(yè)生成Excel文件的方法。)
  本文中的示例描述了 Python 如何實(shí)現爬取網(wǎng)頁(yè)以生成 Excel 文件。分享給大家,供大家參考,如下:
  Python抓取網(wǎng)頁(yè),主要使用PyQuery,和jQuery一樣,超級強大
  示例代碼如下:
   #-*- encoding:utf-8 -*- import sys import locale import string import traceback import datetime import urllib2 from pyquery import PyQuery as pq # 確定運行環(huán)境的encoding reload(sys); sys.setdefaultencoding(&#039;utf8&#039;); f = open(&#039;gongsi.csv&#039;, &#039;w&#039;); for i in range(1,24): d = pq(url="http://www.yourwebname.com/%3F ... 3B%25(i)); itemsa=d(&#039;dl dt a&#039;) #取title元素 itemsb=d(&#039;dl dd&#039;) #取title元素 for j in range(0,len(itemsa)): f.write("%s,\"%s\"\n"%(itemsa[j].get(&#039;title&#039;),itemsb[j*2].text)); #end for #end for f.close();
  接下來(lái)就是用Notepad++打開(kāi)gongsi.csv,然后[emailprotected]~Codewang把它轉成ANSI編碼格式保存。然后用Excel軟件打開(kāi)csv文件,保存為Excel文件
  對更多Python相關(guān)內容感興趣的讀者可以查看本站專(zhuān)題:《Python中Excel表格技巧總結》、《Python文件和目錄操作技巧總結》、《Python文本文件操作總結》 《技能》、《Python數據》《結構與算法教程》、《Python函數技巧總結》、《Python字符串操作技巧總結》和《Python入門(mén)與進(jìn)階經(jīng)典教程》
  希望這篇文章對你的 Python 編程有所幫助。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(本文實(shí)例講述Python實(shí)現抓取網(wǎng)頁(yè)生成Excel文件的方法。)
  本文中的示例描述了 Python 如何實(shí)現爬取網(wǎng)頁(yè)以生成 Excel 文件。分享給大家,供大家參考,如下:
  Python抓取網(wǎng)頁(yè),主要使用PyQuery,和jQuery一樣,超級強大
  示例代碼如下:
   #-*- encoding:utf-8 -*- import sys import locale import string import traceback import datetime import urllib2 from pyquery import PyQuery as pq # 確定運行環(huán)境的encoding reload(sys); sys.setdefaultencoding(&#039;utf8&#039;); f = open(&#039;gongsi.csv&#039;, &#039;w&#039;); for i in range(1,24): d = pq(url="http://www.yourwebname.com/%3F ... 3B%25(i)); itemsa=d(&#039;dl dt a&#039;) #取title元素 itemsb=d(&#039;dl dd&#039;) #取title元素 for j in range(0,len(itemsa)): f.write("%s,\"%s\"\n"%(itemsa[j].get(&#039;title&#039;),itemsb[j*2].text)); #end for #end for f.close();
  接下來(lái)就是用Notepad++打開(kāi)gongsi.csv,然后[emailprotected]~Codewang把它轉成ANSI編碼格式保存。然后用Excel軟件打開(kāi)csv文件,保存為Excel文件
  對更多Python相關(guān)內容感興趣的讀者可以查看本站專(zhuān)題:《Python中Excel表格技巧總結》、《Python文件和目錄操作技巧總結》、《Python文本文件操作總結》 《技能》、《Python數據》《結構與算法教程》、《Python函數技巧總結》、《Python字符串操作技巧總結》和《Python入門(mén)與進(jìn)階經(jīng)典教程》
  希望這篇文章對你的 Python 編程有所幫助。

抓取網(wǎng)頁(yè)生成電子書(shū)(這款軟件功能軟件自動(dòng)更新本軟件集成了新版本自動(dòng)更新功能)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 95 次瀏覽 ? 2022-01-09 21:16 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(這款軟件功能軟件自動(dòng)更新本軟件集成了新版本自動(dòng)更新功能)
  mp4到ebookpk官網(wǎng)獲取VIP閱讀(下載)傭金。有需要的用戶(hù)千萬(wàn)不要錯過(guò)這款實(shí)用又強大的電子書(shū)創(chuàng )作工具。
  
  軟件功能
  自動(dòng)軟件更新
  本軟件集成了新版本的自動(dòng)更新功能,幫助用戶(hù)在第一時(shí)間獲得全新體驗。
  在線(xiàn)采集圖書(shū)內容,只要輸入門(mén)戶(hù)網(wǎng)址和網(wǎng)址過(guò)濾器,即可在本地獲取網(wǎng)頁(yè)內容,成為名副其實(shí)的“網(wǎng)絡(luò )印刷機”和“網(wǎng)絡(luò )刮刀”
  可以將chm、jar、umd、doc、txt、html等文件拖入ebookpk作為書(shū)籍內容的來(lái)源。同時(shí)是標準的mobi、azw3、chm、umd、jar、doc“反編譯器”和“文件合并器”。
  書(shū)稿可以保存(.pk項目文件)
  可以制作帶有書(shū)簽(目錄)的PDF文檔,可以將word轉換為PDF;可以將pdf導入ebookpk軟件;支持虛擬打印機,任何可打印的文檔都可以轉換為PDF 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(這款軟件功能軟件自動(dòng)更新本軟件集成了新版本自動(dòng)更新功能)
  mp4到ebookpk官網(wǎng)獲取VIP閱讀(下載)傭金。有需要的用戶(hù)千萬(wàn)不要錯過(guò)這款實(shí)用又強大的電子書(shū)創(chuàng )作工具。
  
  軟件功能
  自動(dòng)軟件更新
  本軟件集成了新版本的自動(dòng)更新功能,幫助用戶(hù)在第一時(shí)間獲得全新體驗。
  在線(xiàn)采集圖書(shū)內容,只要輸入門(mén)戶(hù)網(wǎng)址和網(wǎng)址過(guò)濾器,即可在本地獲取網(wǎng)頁(yè)內容,成為名副其實(shí)的“網(wǎng)絡(luò )印刷機”和“網(wǎng)絡(luò )刮刀”
  可以將chm、jar、umd、doc、txt、html等文件拖入ebookpk作為書(shū)籍內容的來(lái)源。同時(shí)是標準的mobi、azw3、chm、umd、jar、doc“反編譯器”和“文件合并器”。
  書(shū)稿可以保存(.pk項目文件)
  可以制作帶有書(shū)簽(目錄)的PDF文檔,可以將word轉換為PDF;可以將pdf導入ebookpk軟件;支持虛擬打印機,任何可打印的文檔都可以轉換為PDF

抓取網(wǎng)頁(yè)生成電子書(shū)(完美者()網(wǎng)站對功能性板塊進(jìn)行擴充,以期獨門(mén)技巧)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 93 次瀏覽 ? 2022-01-07 23:01 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(完美者()網(wǎng)站對功能性板塊進(jìn)行擴充,以期獨門(mén)技巧)
  Perfect()網(wǎng)站基于軟件下載,網(wǎng)站修訂版擴展了功能部分,以解決用戶(hù)在使用軟件過(guò)程中遇到的所有問(wèn)題。網(wǎng)站 新增“軟件百科”、“溫馨提示”等頻道,更好地為用戶(hù)提供更專(zhuān)業(yè)的軟件使用全周期服務(wù)。
  
  ibookBox 網(wǎng)絡(luò )小說(shuō)批量下載閱讀器是一款快速抓取各種大小的網(wǎng)絡(luò )小說(shuō)網(wǎng)站,并將整本書(shū)以txt格式生成到本地電腦,同時(shí)保存在郵箱和手機中的工具。ibookBox 可以完整地存儲整個(gè)網(wǎng)頁(yè)的所有信息,并存儲在用戶(hù)的郵箱中。IbookBox 還可以生成 HTML 文件和完整的網(wǎng)頁(yè)快照。與某些軟件不同,它只能抓取可見(jiàn)區域內的照片。使用IbookBox網(wǎng)絡(luò )小說(shuō)批量下載閱讀器時(shí),只需在地址欄輸入網(wǎng)址,點(diǎn)擊告訴搜索小說(shuō),即可輕松下載瀏覽小說(shuō)。IbookBox 支持批量抓取電子書(shū),讓用戶(hù)可以在互聯(lián)網(wǎng)的任何網(wǎng)頁(yè)上看到喜歡的小說(shuō)。, 可以直接批量抓取,生成完整的txt文件供用戶(hù)本地閱讀或手機隨意閱讀。抓取過(guò)程中,如果中途中斷,可以點(diǎn)擊“上次抓取小說(shuō)按鈕”,支持在章節網(wǎng)頁(yè)直接按右鍵直接抓取任務(wù)面板。也可以在主程序中輸入小說(shuō)章節頁(yè)的地址進(jìn)行抓取。
  “技巧與妙計”欄目是全網(wǎng)軟件使用技巧的合集或軟件使用過(guò)程中各種問(wèn)題的解答。文章,專(zhuān)欄成立伊始,編輯歡迎各位軟件大神朋友積極投稿。該平臺分享每個(gè)人的獨特技能。
  本站文章素材來(lái)源于網(wǎng)絡(luò ),文章作者姓名大部分缺失。為了讓用戶(hù)更容易閱讀和使用,它們已根據需要進(jìn)行了重新格式化和部分調整。本站收錄文章僅用于幫助用戶(hù)解決實(shí)際問(wèn)題。如有版權問(wèn)題,請聯(lián)系編輯修改或刪除,謝謝合作。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(完美者()網(wǎng)站對功能性板塊進(jìn)行擴充,以期獨門(mén)技巧)
  Perfect()網(wǎng)站基于軟件下載,網(wǎng)站修訂版擴展了功能部分,以解決用戶(hù)在使用軟件過(guò)程中遇到的所有問(wèn)題。網(wǎng)站 新增“軟件百科”、“溫馨提示”等頻道,更好地為用戶(hù)提供更專(zhuān)業(yè)的軟件使用全周期服務(wù)。
  
  ibookBox 網(wǎng)絡(luò )小說(shuō)批量下載閱讀器是一款快速抓取各種大小的網(wǎng)絡(luò )小說(shuō)網(wǎng)站,并將整本書(shū)以txt格式生成到本地電腦,同時(shí)保存在郵箱和手機中的工具。ibookBox 可以完整地存儲整個(gè)網(wǎng)頁(yè)的所有信息,并存儲在用戶(hù)的郵箱中。IbookBox 還可以生成 HTML 文件和完整的網(wǎng)頁(yè)快照。與某些軟件不同,它只能抓取可見(jiàn)區域內的照片。使用IbookBox網(wǎng)絡(luò )小說(shuō)批量下載閱讀器時(shí),只需在地址欄輸入網(wǎng)址,點(diǎn)擊告訴搜索小說(shuō),即可輕松下載瀏覽小說(shuō)。IbookBox 支持批量抓取電子書(shū),讓用戶(hù)可以在互聯(lián)網(wǎng)的任何網(wǎng)頁(yè)上看到喜歡的小說(shuō)。, 可以直接批量抓取,生成完整的txt文件供用戶(hù)本地閱讀或手機隨意閱讀。抓取過(guò)程中,如果中途中斷,可以點(diǎn)擊“上次抓取小說(shuō)按鈕”,支持在章節網(wǎng)頁(yè)直接按右鍵直接抓取任務(wù)面板。也可以在主程序中輸入小說(shuō)章節頁(yè)的地址進(jìn)行抓取。
  “技巧與妙計”欄目是全網(wǎng)軟件使用技巧的合集或軟件使用過(guò)程中各種問(wèn)題的解答。文章,專(zhuān)欄成立伊始,編輯歡迎各位軟件大神朋友積極投稿。該平臺分享每個(gè)人的獨特技能。
  本站文章素材來(lái)源于網(wǎng)絡(luò ),文章作者姓名大部分缺失。為了讓用戶(hù)更容易閱讀和使用,它們已根據需要進(jìn)行了重新格式化和部分調整。本站收錄文章僅用于幫助用戶(hù)解決實(shí)際問(wèn)題。如有版權問(wèn)題,請聯(lián)系編輯修改或刪除,謝謝合作。

抓取網(wǎng)頁(yè)生成電子書(shū)(繼續并發(fā)專(zhuān)題~FutureTask有點(diǎn)類(lèi)似Runnable的get方法支持阻塞)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2022-01-06 23:11 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(繼續并發(fā)專(zhuān)題~FutureTask有點(diǎn)類(lèi)似Runnable的get方法支持阻塞)
  繼續并發(fā)話(huà)題~
  FutureTask有點(diǎn)類(lèi)似于Runnable,可以由Thread啟動(dòng),但是FutureTask執行后可以返回數據,FutureTask的get方法支持阻塞。
  因為:FutureTask可以返回已經(jīng)執行過(guò)的數據,而FutureTask的get方法支持阻塞這兩個(gè)特性,我們可以用它來(lái)預加載一些可能會(huì )用到的資源,然后調用get方法來(lái)獲取想使用它(如果資源已加載,則直接返回;否則,繼續等待其加載完成)。
  下面舉兩個(gè)例子來(lái)介紹:
  1、使用FutureTask預加載以后要用到的數據。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask來(lái)提前加載稍后要用到的數據
*
* @author zhy
*
*/
public class PreLoaderUseFutureTask
{
/**
* 創(chuàng )建一個(gè)FutureTask用來(lái)加載資源
*/
private final FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
Thread.sleep(3000);
return "加載資源需要3秒";
}
});
public final Thread thread = new Thread(futureTask);
public void start()
{
thread.start();
}
/**
* 獲取資源
*
* @return
* @throws ExecutionException
* @throws InterruptedException
*/
public String getRes() throws InterruptedException, ExecutionException
{
return futureTask.get();//加載完畢直接返回,否則等待加載完畢
}
public static void main(String[] args) throws InterruptedException, ExecutionException
{
PreLoaderUseFutureTask task = new PreLoaderUseFutureTask();
/**
* 開(kāi)啟預加載資源
*/
task.start();
// 用戶(hù)在真正需要加載資源前進(jìn)行了其他操作了2秒
Thread.sleep(2000);
/**
* 獲取資源
*/
System.out.println(System.currentTimeMillis() + ":開(kāi)始加載資源");
String res = task.getRes();
System.out.println(res);
System.out.println(System.currentTimeMillis() + ":加載資源結束");
}
}
  操作結果:
  1400902789275:開(kāi)始加載資源
加載資源需要3秒
1400902790275:加載資源結束
  可以看到,原來(lái)加載資源需要3秒,現在只需要1秒。如果用戶(hù)執行其他操作的時(shí)間較長(cháng),可以直接返回,大大增加了用戶(hù)體驗。
  2、看看Future的API
  
  可以看到 Future 的 API 還是比較簡(jiǎn)單的??疵志椭酪馑剂?,get(long,TimeUnit)還是可以支持的,設置最大等待時(shí)間,如操作時(shí)間過(guò)長(cháng),可以取消。
  3、FutureTask模擬,預加載功能供用戶(hù)在線(xiàn)觀(guān)看電子書(shū)
  當用戶(hù)觀(guān)看當前頁(yè)面時(shí),后臺會(huì )提前加載下一頁(yè),可以大大提升用戶(hù)體驗。無(wú)需等待每個(gè)頁(yè)面加載。用戶(hù)會(huì )覺(jué)得這個(gè)電子書(shū)軟件很流暢。真的很棒。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask模擬預加載下一頁(yè)圖書(shū)的內容
*
* @author zhy
*
*/
public class BookInstance
{
/**
* 當前的頁(yè)碼
*/
private volatile int currentPage = 1;
/**
* 異步的任務(wù)獲取當前頁(yè)的內容
*/
FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
});
/**
* 實(shí)例化一本書(shū),并傳入當前讀到的頁(yè)碼
*
* @param currentPage
*/
public BookInstance(int currentPage)
{
this.currentPage = currentPage;
/**
* 直接啟動(dòng)線(xiàn)程獲取當前頁(yè)碼內容
*/
Thread thread = new Thread(futureTask);
thread.start();
}
/**
* 獲取當前頁(yè)的內容
*
* @return
* @throws InterruptedException
* @throws ExecutionException
*/
public String getCurrentPageContent() throws InterruptedException,
ExecutionException
{
String con = futureTask.get();
this.currentPage = currentPage + 1;
Thread thread = new Thread(futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
}));
thread.start();
return con;
}
/**
* 根據頁(yè)碼從網(wǎng)絡(luò )抓取數據
*
* @return
* @throws InterruptedException
*/
private String loadDataFromNet() throws InterruptedException
{
Thread.sleep(1000);
return "Page " + this.currentPage + " : the content ....";
}
public static void main(String[] args) throws InterruptedException,
ExecutionException
{
BookInstance instance = new BookInstance(1);
for (int i = 0; i < 10; i++)
{
long start = System.currentTimeMillis();
String content = instance.getCurrentPageContent();
System.out.println("[1秒閱讀時(shí)間]read:" + content);
Thread.sleep(1000);
System.out.println(System.currentTimeMillis() - start);
}
}
}
  輸出結果:
  [1秒閱讀時(shí)間]read:Page 1 : the content ....
2001
[1秒閱讀時(shí)間]read:Page 2 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 3 : the content ....
1001
[1秒閱讀時(shí)間]read:Page 4 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 5 : the content ....
1001
  可以看到,除了第一次查看當前頁(yè)面時(shí)等待網(wǎng)絡(luò )加載數據的過(guò)程(輸出:2001,1000是加載時(shí)間,1000是用戶(hù)閱讀時(shí)間),接下來(lái)的頁(yè)面是全部瞬間返回(輸出1000是用戶(hù)閱讀時(shí)間),完全不需要等待。
  代碼是為了說(shuō)明FutureTask的應用場(chǎng)景,請勿直接在項目中使用。
  好了,就這樣了,歡迎大家留言。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(繼續并發(fā)專(zhuān)題~FutureTask有點(diǎn)類(lèi)似Runnable的get方法支持阻塞)
  繼續并發(fā)話(huà)題~
  FutureTask有點(diǎn)類(lèi)似于Runnable,可以由Thread啟動(dòng),但是FutureTask執行后可以返回數據,FutureTask的get方法支持阻塞。
  因為:FutureTask可以返回已經(jīng)執行過(guò)的數據,而FutureTask的get方法支持阻塞這兩個(gè)特性,我們可以用它來(lái)預加載一些可能會(huì )用到的資源,然后調用get方法來(lái)獲取想使用它(如果資源已加載,則直接返回;否則,繼續等待其加載完成)。
  下面舉兩個(gè)例子來(lái)介紹:
  1、使用FutureTask預加載以后要用到的數據。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask來(lái)提前加載稍后要用到的數據
*
* @author zhy
*
*/
public class PreLoaderUseFutureTask
{
/**
* 創(chuàng )建一個(gè)FutureTask用來(lái)加載資源
*/
private final FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
Thread.sleep(3000);
return "加載資源需要3秒";
}
});
public final Thread thread = new Thread(futureTask);
public void start()
{
thread.start();
}
/**
* 獲取資源
*
* @return
* @throws ExecutionException
* @throws InterruptedException
*/
public String getRes() throws InterruptedException, ExecutionException
{
return futureTask.get();//加載完畢直接返回,否則等待加載完畢
}
public static void main(String[] args) throws InterruptedException, ExecutionException
{
PreLoaderUseFutureTask task = new PreLoaderUseFutureTask();
/**
* 開(kāi)啟預加載資源
*/
task.start();
// 用戶(hù)在真正需要加載資源前進(jìn)行了其他操作了2秒
Thread.sleep(2000);
/**
* 獲取資源
*/
System.out.println(System.currentTimeMillis() + ":開(kāi)始加載資源");
String res = task.getRes();
System.out.println(res);
System.out.println(System.currentTimeMillis() + ":加載資源結束");
}
}
  操作結果:
  1400902789275:開(kāi)始加載資源
加載資源需要3秒
1400902790275:加載資源結束
  可以看到,原來(lái)加載資源需要3秒,現在只需要1秒。如果用戶(hù)執行其他操作的時(shí)間較長(cháng),可以直接返回,大大增加了用戶(hù)體驗。
  2、看看Future的API
  
  可以看到 Future 的 API 還是比較簡(jiǎn)單的??疵志椭酪馑剂?,get(long,TimeUnit)還是可以支持的,設置最大等待時(shí)間,如操作時(shí)間過(guò)長(cháng),可以取消。
  3、FutureTask模擬,預加載功能供用戶(hù)在線(xiàn)觀(guān)看電子書(shū)
  當用戶(hù)觀(guān)看當前頁(yè)面時(shí),后臺會(huì )提前加載下一頁(yè),可以大大提升用戶(hù)體驗。無(wú)需等待每個(gè)頁(yè)面加載。用戶(hù)會(huì )覺(jué)得這個(gè)電子書(shū)軟件很流暢。真的很棒。
  package com.zhy.concurrency.futuretask;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* 使用FutureTask模擬預加載下一頁(yè)圖書(shū)的內容
*
* @author zhy
*
*/
public class BookInstance
{
/**
* 當前的頁(yè)碼
*/
private volatile int currentPage = 1;
/**
* 異步的任務(wù)獲取當前頁(yè)的內容
*/
FutureTask futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
});
/**
* 實(shí)例化一本書(shū),并傳入當前讀到的頁(yè)碼
*
* @param currentPage
*/
public BookInstance(int currentPage)
{
this.currentPage = currentPage;
/**
* 直接啟動(dòng)線(xiàn)程獲取當前頁(yè)碼內容
*/
Thread thread = new Thread(futureTask);
thread.start();
}
/**
* 獲取當前頁(yè)的內容
*
* @return
* @throws InterruptedException
* @throws ExecutionException
*/
public String getCurrentPageContent() throws InterruptedException,
ExecutionException
{
String con = futureTask.get();
this.currentPage = currentPage + 1;
Thread thread = new Thread(futureTask = new FutureTask(
new Callable()
{
@Override
public String call() throws Exception
{
return loadDataFromNet();
}
}));
thread.start();
return con;
}
/**
* 根據頁(yè)碼從網(wǎng)絡(luò )抓取數據
*
* @return
* @throws InterruptedException
*/
private String loadDataFromNet() throws InterruptedException
{
Thread.sleep(1000);
return "Page " + this.currentPage + " : the content ....";
}
public static void main(String[] args) throws InterruptedException,
ExecutionException
{
BookInstance instance = new BookInstance(1);
for (int i = 0; i < 10; i++)
{
long start = System.currentTimeMillis();
String content = instance.getCurrentPageContent();
System.out.println("[1秒閱讀時(shí)間]read:" + content);
Thread.sleep(1000);
System.out.println(System.currentTimeMillis() - start);
}
}
}
  輸出結果:
  [1秒閱讀時(shí)間]read:Page 1 : the content ....
2001
[1秒閱讀時(shí)間]read:Page 2 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 3 : the content ....
1001
[1秒閱讀時(shí)間]read:Page 4 : the content ....
1000
[1秒閱讀時(shí)間]read:Page 5 : the content ....
1001
  可以看到,除了第一次查看當前頁(yè)面時(shí)等待網(wǎng)絡(luò )加載數據的過(guò)程(輸出:2001,1000是加載時(shí)間,1000是用戶(hù)閱讀時(shí)間),接下來(lái)的頁(yè)面是全部瞬間返回(輸出1000是用戶(hù)閱讀時(shí)間),完全不需要等待。
  代碼是為了說(shuō)明FutureTask的應用場(chǎng)景,請勿直接在項目中使用。
  好了,就這樣了,歡迎大家留言。

抓取網(wǎng)頁(yè)生成電子書(shū)(實(shí)用功能:1.優(yōu)化電子書(shū)的排版(RSS制成電子書(shū)電子書(shū)))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 666 次瀏覽 ? 2022-01-05 17:16 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(實(shí)用功能:1.優(yōu)化電子書(shū)的排版(RSS制成電子書(shū)電子書(shū)))
  Calibre是一款免費開(kāi)源的電子書(shū)管理神器,可用于整理、存儲、管理、閱讀和轉換電子書(shū)。支持大部分電子書(shū)格式;它還可以添加文本、圖像材料和在線(xiàn)內容(RSS)并將它們轉換為電子書(shū)。
  
  可與最流行的電子書(shū)閱讀器同步,軟件同時(shí)支持Windows、macOS和Linux系統。
  實(shí)用功能:
  1. 優(yōu)化電子書(shū)版式
  無(wú)論是從亞馬遜 Kindle 電子書(shū)店購買(mǎi),還是從其他在線(xiàn)渠道下載的電子書(shū),排版往往不盡如人意。
  
  這時(shí)候就可以使用Calibre進(jìn)行簡(jiǎn)單的優(yōu)化,就可以制作出排版良好的電子書(shū),修改上面的參數就可以達到不錯的效果。
  2. 獲取 RSS 以制作電子書(shū)
  準備好 RSS 提要后,您可以在 Calibre 中添加這些提要。打開(kāi)Calibre,在Calibre主界面頂部的功能圖標中找到“抓取新聞”,點(diǎn)擊右側的向下箭頭,在彈出的菜單中點(diǎn)擊“添加自定義新聞源”。
  
  3. 轉換電子書(shū)格式
  Calibre 有兩種轉換方式:“一一轉換”和“批量轉換”。如果選擇多個(gè)文件,使用“一一轉換”需要對每本書(shū)進(jìn)行單獨設置。例如,您可以為不同的電子書(shū)設置不同的格式;而“批量轉換”是所有電子書(shū)的通用設置。
  
  Calibre 支持轉換格式:EPUB、MOBI、AZW3、DOCX、FB2、HTMLZ、LIT、LRF、PDB、PDF、PMIZ、RB、RTF、SNB、TCR、TXT、TXTZ、ZIP 等。
  4. 通過(guò) WiFi 將電子書(shū)傳輸到 Kindle
  
  如果您使用的是無(wú)線(xiàn)路由器,您可以將Calibre 變成一個(gè)小型服務(wù)器,然后使用Kindle 的“實(shí)驗性網(wǎng)絡(luò )瀏覽器”訪(fǎng)問(wèn)Calibre 圖書(shū)館中的電子書(shū)并下載到Kindle。
  5. 郵件一鍵推送電子書(shū)
  
  此外,Calibre 還有許多強大實(shí)用的功能:
  1)您可以通過(guò)瀏覽器查看、閱讀或下載您的圖書(shū)館(:8080);
  2) 將TXT文件轉換為MOBI格式的帶目錄的電子書(shū);
  3)使用Calibre添加或修改電子書(shū)的封面;
  4)使用Calibre抓取網(wǎng)站頁(yè)面制作電子書(shū); 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(實(shí)用功能:1.優(yōu)化電子書(shū)的排版(RSS制成電子書(shū)電子書(shū)))
  Calibre是一款免費開(kāi)源的電子書(shū)管理神器,可用于整理、存儲、管理、閱讀和轉換電子書(shū)。支持大部分電子書(shū)格式;它還可以添加文本、圖像材料和在線(xiàn)內容(RSS)并將它們轉換為電子書(shū)。
  
  可與最流行的電子書(shū)閱讀器同步,軟件同時(shí)支持Windows、macOS和Linux系統。
  實(shí)用功能:
  1. 優(yōu)化電子書(shū)版式
  無(wú)論是從亞馬遜 Kindle 電子書(shū)店購買(mǎi),還是從其他在線(xiàn)渠道下載的電子書(shū),排版往往不盡如人意。
  
  這時(shí)候就可以使用Calibre進(jìn)行簡(jiǎn)單的優(yōu)化,就可以制作出排版良好的電子書(shū),修改上面的參數就可以達到不錯的效果。
  2. 獲取 RSS 以制作電子書(shū)
  準備好 RSS 提要后,您可以在 Calibre 中添加這些提要。打開(kāi)Calibre,在Calibre主界面頂部的功能圖標中找到“抓取新聞”,點(diǎn)擊右側的向下箭頭,在彈出的菜單中點(diǎn)擊“添加自定義新聞源”。
  
  3. 轉換電子書(shū)格式
  Calibre 有兩種轉換方式:“一一轉換”和“批量轉換”。如果選擇多個(gè)文件,使用“一一轉換”需要對每本書(shū)進(jìn)行單獨設置。例如,您可以為不同的電子書(shū)設置不同的格式;而“批量轉換”是所有電子書(shū)的通用設置。
  
  Calibre 支持轉換格式:EPUB、MOBI、AZW3、DOCX、FB2、HTMLZ、LIT、LRF、PDB、PDF、PMIZ、RB、RTF、SNB、TCR、TXT、TXTZ、ZIP 等。
  4. 通過(guò) WiFi 將電子書(shū)傳輸到 Kindle
  
  如果您使用的是無(wú)線(xiàn)路由器,您可以將Calibre 變成一個(gè)小型服務(wù)器,然后使用Kindle 的“實(shí)驗性網(wǎng)絡(luò )瀏覽器”訪(fǎng)問(wèn)Calibre 圖書(shū)館中的電子書(shū)并下載到Kindle。
  5. 郵件一鍵推送電子書(shū)
  
  此外,Calibre 還有許多強大實(shí)用的功能:
  1)您可以通過(guò)瀏覽器查看、閱讀或下載您的圖書(shū)館(:8080);
  2) 將TXT文件轉換為MOBI格式的帶目錄的電子書(shū);
  3)使用Calibre添加或修改電子書(shū)的封面;
  4)使用Calibre抓取網(wǎng)站頁(yè)面制作電子書(shū);

抓取網(wǎng)頁(yè)生成電子書(shū)(抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取哪種網(wǎng)頁(yè))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 103 次瀏覽 ? 2022-01-05 15:03 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取哪種網(wǎng)頁(yè))
  抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取豆瓣書(shū)籍的時(shí)候,想要了解更詳細,不知道題主想要爬取哪種網(wǎng)頁(yè)。比如,微信公眾號有很多地方提供文章聚合,微博也可以抓取,
  android的話(huà),下載些codeblocks之類(lèi)的工具,安裝daocloud,自己寫(xiě)個(gè)網(wǎng)頁(yè)多人連接,然后開(kāi)始傳遞鏈接,鏈接到app里就可以看電子書(shū)了,還可以,自動(dòng)加入書(shū)架。ios可以買(mǎi)一本nonethought030,入門(mén)的好教材,也就幾千元,電子書(shū)也好找,除非人工作業(yè)。
  可以寫(xiě)個(gè)小app,比如微信文章會(huì )提供下載鏈接,你可以自己把獲取之后傳給別人,而不需要自己下一大堆文件過(guò)去。
  多讀書(shū)!
  能理解你的想法。你可以直接爬下來(lái),加入整理列表,提供給別人閱讀,這樣就可以免費下載了。
  最直接的方法,就是搜索讀書(shū)app,然后下載下來(lái)讀。但是,題主如果要下載的書(shū)籍,和現在市面上的書(shū)籍大多是有差別的,那這就得需要研究一番。其實(shí)最簡(jiǎn)單的辦法,你也可以直接選一些文章,這種比較多。你直接爬下來(lái),整理好,有提供別人閱讀的,自己就可以閱讀了,也不需要下載其他電子書(shū)。
  有個(gè)app叫西西閱讀器,挺不錯的。是一款瀏覽器級別的閱讀軟件?,F在有很多的公眾號都在推薦了。搜狐、網(wǎng)易等都有??梢蕴峁┟赓M下載,特別方便。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取哪種網(wǎng)頁(yè))
  抓取網(wǎng)頁(yè)生成電子書(shū)就可以。我看到題主想要爬取豆瓣書(shū)籍的時(shí)候,想要了解更詳細,不知道題主想要爬取哪種網(wǎng)頁(yè)。比如,微信公眾號有很多地方提供文章聚合,微博也可以抓取,
  android的話(huà),下載些codeblocks之類(lèi)的工具,安裝daocloud,自己寫(xiě)個(gè)網(wǎng)頁(yè)多人連接,然后開(kāi)始傳遞鏈接,鏈接到app里就可以看電子書(shū)了,還可以,自動(dòng)加入書(shū)架。ios可以買(mǎi)一本nonethought030,入門(mén)的好教材,也就幾千元,電子書(shū)也好找,除非人工作業(yè)。
  可以寫(xiě)個(gè)小app,比如微信文章會(huì )提供下載鏈接,你可以自己把獲取之后傳給別人,而不需要自己下一大堆文件過(guò)去。
  多讀書(shū)!
  能理解你的想法。你可以直接爬下來(lái),加入整理列表,提供給別人閱讀,這樣就可以免費下載了。
  最直接的方法,就是搜索讀書(shū)app,然后下載下來(lái)讀。但是,題主如果要下載的書(shū)籍,和現在市面上的書(shū)籍大多是有差別的,那這就得需要研究一番。其實(shí)最簡(jiǎn)單的辦法,你也可以直接選一些文章,這種比較多。你直接爬下來(lái),整理好,有提供別人閱讀的,自己就可以閱讀了,也不需要下載其他電子書(shū)。
  有個(gè)app叫西西閱讀器,挺不錯的。是一款瀏覽器級別的閱讀軟件?,F在有很多的公眾號都在推薦了。搜狐、網(wǎng)易等都有??梢蕴峁┟赓M下載,特別方便。

抓取網(wǎng)頁(yè)生成電子書(shū)(什么是爬蟲(chóng)爬蟲(chóng):Python爬蟲(chóng)架構架構主要由五個(gè)部分組成)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2022-01-03 17:10 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(什么是爬蟲(chóng)爬蟲(chóng):Python爬蟲(chóng)架構架構主要由五個(gè)部分組成)
  什么是爬蟲(chóng)
  爬蟲(chóng):一種自動(dòng)從互聯(lián)網(wǎng)上抓取信息的程序,從互聯(lián)網(wǎng)上抓取對我們有價(jià)值的信息。
  Python 爬蟲(chóng)架構
  Python爬蟲(chóng)架構主要由調度器、URL管理器、網(wǎng)頁(yè)下載器、網(wǎng)頁(yè)解析器、應用(抓取有價(jià)值的數據)五部分組成。
  
  使用urllib2實(shí)現網(wǎng)頁(yè)下載的方式
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import cookielib
import urllib2

url = "http://www.baidu.com"
response1 = urllib2.urlopen(url)
print "第一種方法"
#獲取狀態(tài)碼,200表示成功
print response1.getcode()
#獲取網(wǎng)頁(yè)內容的長(cháng)度
print len(response1.read())

print "第二種方法"
request = urllib2.Request(url)
#模擬Mozilla瀏覽器進(jìn)行爬蟲(chóng)
request.add_header("user-agent","Mozilla/5.0")
response2 = urllib2.urlopen(request)
print response2.getcode()
print len(response2.read())

print "第三種方法"
cookie = cookielib.CookieJar()
#加入urllib2處理cookie的能力
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response3 = urllib2.urlopen(url)
print response3.getcode()
print len(response3.read())
print cookie
  使用 Beautiful Soup 解析 html 文件
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import re

from bs4 import BeautifulSoup
html_doc = """
The Dormouse's story
<p class="title">The Dormouse's story
  Once upon a time there were three little sisters; and their names were
Elsie,
Lacie and
Tillie;
and they lived at the bottom of a well.
  ...
"""
#創(chuàng )建一個(gè)BeautifulSoup解析對象
soup = BeautifulSoup(html_doc,"html.parser",from_encoding="utf-8")
#獲取所有的鏈接
links = soup.find_all('a')
print "所有的鏈接"
for link in links:
print link.name,link['href'],link.get_text()

print "獲取特定的URL地址"
link_node = soup.find('a',href="http://example.com/elsie")
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "正則表達式匹配"
link_node = soup.find('a',href=re.compile(r"ti"))
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "獲取P段落的文字"
p_node = soup.find('p',class_='story')
print p_node.name,p_node['class'],p_node.get_text()shsh
</p>
  python 很強大嗎? 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(什么是爬蟲(chóng)爬蟲(chóng):Python爬蟲(chóng)架構架構主要由五個(gè)部分組成)
  什么是爬蟲(chóng)
  爬蟲(chóng):一種自動(dòng)從互聯(lián)網(wǎng)上抓取信息的程序,從互聯(lián)網(wǎng)上抓取對我們有價(jià)值的信息。
  Python 爬蟲(chóng)架構
  Python爬蟲(chóng)架構主要由調度器、URL管理器、網(wǎng)頁(yè)下載器、網(wǎng)頁(yè)解析器、應用(抓取有價(jià)值的數據)五部分組成。
  
  使用urllib2實(shí)現網(wǎng)頁(yè)下載的方式
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import cookielib
import urllib2

url = "http://www.baidu.com"
response1 = urllib2.urlopen(url)
print "第一種方法"
#獲取狀態(tài)碼,200表示成功
print response1.getcode()
#獲取網(wǎng)頁(yè)內容的長(cháng)度
print len(response1.read())

print "第二種方法"
request = urllib2.Request(url)
#模擬Mozilla瀏覽器進(jìn)行爬蟲(chóng)
request.add_header("user-agent","Mozilla/5.0")
response2 = urllib2.urlopen(request)
print response2.getcode()
print len(response2.read())

print "第三種方法"
cookie = cookielib.CookieJar()
#加入urllib2處理cookie的能力
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
response3 = urllib2.urlopen(url)
print response3.getcode()
print len(response3.read())
print cookie
  使用 Beautiful Soup 解析 html 文件
  #!/usr/bin/python
# -*- coding: UTF-8 -*-

import re

from bs4 import BeautifulSoup
html_doc = """
The Dormouse's story
<p class="title">The Dormouse's story
  Once upon a time there were three little sisters; and their names were
Elsie,
Lacie and
Tillie;
and they lived at the bottom of a well.
  ...
"""
#創(chuàng )建一個(gè)BeautifulSoup解析對象
soup = BeautifulSoup(html_doc,"html.parser",from_encoding="utf-8")
#獲取所有的鏈接
links = soup.find_all('a')
print "所有的鏈接"
for link in links:
print link.name,link['href'],link.get_text()

print "獲取特定的URL地址"
link_node = soup.find('a',href="http://example.com/elsie";)
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "正則表達式匹配"
link_node = soup.find('a',href=re.compile(r"ti"))
print link_node.name,link_node['href'],link_node['class'],link_node.get_text()

print "獲取P段落的文字"
p_node = soup.find('p',class_='story')
print p_node.name,p_node['class'],p_node.get_text()shsh
</p>
  python 很強大嗎?

抓取網(wǎng)頁(yè)生成電子書(shū)(資料管理電子書(shū)制作利器-友益文書(shū)軟件設置 )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 163 次瀏覽 ? 2022-01-03 09:18 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(資料管理電子書(shū)制作利器-友益文書(shū)軟件設置
)
  數據管理電子書(shū)制作工具-友易文檔軟件是一款集數據管理、電子書(shū)制作、翻頁(yè)電子書(shū)制作、多媒體課件管理于一體的多功能軟件...可用于管理htm網(wǎng)頁(yè)和 mht 單個(gè)網(wǎng)頁(yè)。 、Word文檔、excel文檔、幻燈片、pdf、chm、exe、txt、rtf、GIF、JPG、PNG、DJVU、ICO、TIF、BMP、Flash動(dòng)畫(huà)等格式文件;支持全文、網(wǎng)頁(yè)、word文檔搜索,支持背景音樂(lè )播放。集成pdf閱讀功能,無(wú)需安裝任何pdf閱讀器,輕松閱讀pdf文件。
  可以發(fā)布電腦版exe、chm電子書(shū)、安卓apk電子書(shū)、蘋(píng)果epub電子書(shū)等,還可以發(fā)布翻頁(yè)電子書(shū)功能。設置一機一碼或反傳播功能。
  無(wú)需安裝任何軟件,直接生成安卓手機apk電子書(shū)。
  方便制作exe翻頁(yè)電子書(shū)、滑動(dòng)手機相冊、撕角翻頁(yè)電子書(shū)。
  可生成安卓手機版apk電子書(shū),支持5級目錄,具有目錄搜索、全文搜索、書(shū)簽、設置一機一碼功能,支持文本、網(wǎng)頁(yè)、圖片和pdf文檔,無(wú)需在手機上安裝其他任何閱讀器都可以閱讀。是目前安卓手機最強大的數據管理和電子書(shū)軟件。
  可以生成蘋(píng)果手機可以閱讀的epub格式文件;
  可以生成具有全文搜索、目錄搜索、采集夾等功能的chm格式文件。
  可以直接為托管數據生成可執行文件。軟件采用窗口風(fēng)格,目錄樹(shù)結構管理,所見(jiàn)即所得的設計理念,不需要復雜的轉換和編譯。
  易于使用和操作。您可以自由添加和刪除目錄樹(shù),隨意編輯文檔內容,更改字體大小和顏色。
  該軟件還可以生成電子相冊,非常適合企事業(yè)單位進(jìn)行產(chǎn)品推廣和業(yè)務(wù)推廣,在微信上分享非常方便。
  本軟件不斷吸收同類(lèi)軟件的優(yōu)點(diǎn),同時(shí)在功能和設計上有獨特的創(chuàng )新。采用混合索引算法,數據存儲采用自己的壓縮格式,獨特的多文本超鏈接功能。網(wǎng)頁(yè)仍可編輯,支持Word文檔、網(wǎng)頁(yè)、文本等格式之間的轉換。采用多級分布式加密算法,界面支持皮膚等個(gè)性化設計。
  
  
  
  
  
  
  
  
  
  
   查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(資料管理電子書(shū)制作利器-友益文書(shū)軟件設置
)
  數據管理電子書(shū)制作工具-友易文檔軟件是一款集數據管理、電子書(shū)制作、翻頁(yè)電子書(shū)制作、多媒體課件管理于一體的多功能軟件...可用于管理htm網(wǎng)頁(yè)和 mht 單個(gè)網(wǎng)頁(yè)。 、Word文檔、excel文檔、幻燈片、pdf、chm、exe、txt、rtf、GIF、JPG、PNG、DJVU、ICO、TIF、BMP、Flash動(dòng)畫(huà)等格式文件;支持全文、網(wǎng)頁(yè)、word文檔搜索,支持背景音樂(lè )播放。集成pdf閱讀功能,無(wú)需安裝任何pdf閱讀器,輕松閱讀pdf文件。
  可以發(fā)布電腦版exe、chm電子書(shū)、安卓apk電子書(shū)、蘋(píng)果epub電子書(shū)等,還可以發(fā)布翻頁(yè)電子書(shū)功能。設置一機一碼或反傳播功能。
  無(wú)需安裝任何軟件,直接生成安卓手機apk電子書(shū)。
  方便制作exe翻頁(yè)電子書(shū)、滑動(dòng)手機相冊、撕角翻頁(yè)電子書(shū)。
  可生成安卓手機版apk電子書(shū),支持5級目錄,具有目錄搜索、全文搜索、書(shū)簽、設置一機一碼功能,支持文本、網(wǎng)頁(yè)、圖片和pdf文檔,無(wú)需在手機上安裝其他任何閱讀器都可以閱讀。是目前安卓手機最強大的數據管理和電子書(shū)軟件。
  可以生成蘋(píng)果手機可以閱讀的epub格式文件;
  可以生成具有全文搜索、目錄搜索、采集夾等功能的chm格式文件。
  可以直接為托管數據生成可執行文件。軟件采用窗口風(fēng)格,目錄樹(shù)結構管理,所見(jiàn)即所得的設計理念,不需要復雜的轉換和編譯。
  易于使用和操作。您可以自由添加和刪除目錄樹(shù),隨意編輯文檔內容,更改字體大小和顏色。
  該軟件還可以生成電子相冊,非常適合企事業(yè)單位進(jìn)行產(chǎn)品推廣和業(yè)務(wù)推廣,在微信上分享非常方便。
  本軟件不斷吸收同類(lèi)軟件的優(yōu)點(diǎn),同時(shí)在功能和設計上有獨特的創(chuàng )新。采用混合索引算法,數據存儲采用自己的壓縮格式,獨特的多文本超鏈接功能。網(wǎng)頁(yè)仍可編輯,支持Word文檔、網(wǎng)頁(yè)、文本等格式之間的轉換。采用多級分布式加密算法,界面支持皮膚等個(gè)性化設計。
  
  
  
  
  
  
  
  
  
  
  

抓取網(wǎng)頁(yè)生成電子書(shū)(豆瓣日記:只輸出最近幾個(gè)月的日記摘要(圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 130 次瀏覽 ? 2022-01-03 09:17 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(豆瓣日記:只輸出最近幾個(gè)月的日記摘要(圖))
  豆瓣日記的提要地址很容易找到。打開(kāi)博主的豆瓣日記界面,右欄下方是官方提要地址。
  或者安裝 RSShub Radar 瀏覽器擴展,在豆瓣日記界面點(diǎn)擊擴展圖標,會(huì )顯示提要地址。
  
  使用Calibre進(jìn)行捕捉文章
  啟動(dòng) Calibre,然后在工具欄上的抓取新聞下拉欄中找到添加自定義新聞源。
  
  在“添加自定義新聞源”窗口中,選擇左下角的“新建訂閱列表”。
  
  在打開(kāi)的窗口中,按要求填寫(xiě)以下信息:
  
  填寫(xiě)完畢后,點(diǎn)擊添加來(lái)源,將其添加到訂閱列表中的新聞框。如果要添加其他源地址,可以繼續以同樣的方式添加源。
  
  點(diǎn)擊保存退出添加自定義新聞源窗口,然后點(diǎn)擊工具欄中的抓取新聞,會(huì )彈出一個(gè)常規的新聞下載窗口,在左側欄的自定義中選擇剛剛創(chuàng )建的訂閱列表的標題,然后點(diǎn)擊右下角的立即下載。
  
  等待Calibre從網(wǎng)上獲取文章,提示完成后,庫中會(huì )出現訂閱列表標題的電子書(shū)。
  
  查看電子書(shū)
  電子書(shū)封面為簡(jiǎn)單的自動(dòng)生成封面,附有文章目錄,內容已排版。
  
  因為豆瓣日記的RSS提要有兩個(gè)缺陷:只輸出日記摘要,只輸出最近幾個(gè)月的日記。前者結果8月以來(lái)電子書(shū)里只有文章,后者得益于Calibre可以自動(dòng)抓取全文并被攻克。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(豆瓣日記:只輸出最近幾個(gè)月的日記摘要(圖))
  豆瓣日記的提要地址很容易找到。打開(kāi)博主的豆瓣日記界面,右欄下方是官方提要地址。
  或者安裝 RSShub Radar 瀏覽器擴展,在豆瓣日記界面點(diǎn)擊擴展圖標,會(huì )顯示提要地址。
  
  使用Calibre進(jìn)行捕捉文章
  啟動(dòng) Calibre,然后在工具欄上的抓取新聞下拉欄中找到添加自定義新聞源。
  
  在“添加自定義新聞源”窗口中,選擇左下角的“新建訂閱列表”。
  
  在打開(kāi)的窗口中,按要求填寫(xiě)以下信息:
  
  填寫(xiě)完畢后,點(diǎn)擊添加來(lái)源,將其添加到訂閱列表中的新聞框。如果要添加其他源地址,可以繼續以同樣的方式添加源。
  
  點(diǎn)擊保存退出添加自定義新聞源窗口,然后點(diǎn)擊工具欄中的抓取新聞,會(huì )彈出一個(gè)常規的新聞下載窗口,在左側欄的自定義中選擇剛剛創(chuàng )建的訂閱列表的標題,然后點(diǎn)擊右下角的立即下載。
  
  等待Calibre從網(wǎng)上獲取文章,提示完成后,庫中會(huì )出現訂閱列表標題的電子書(shū)。
  
  查看電子書(shū)
  電子書(shū)封面為簡(jiǎn)單的自動(dòng)生成封面,附有文章目錄,內容已排版。
  
  因為豆瓣日記的RSS提要有兩個(gè)缺陷:只輸出日記摘要,只輸出最近幾個(gè)月的日記。前者結果8月以來(lái)電子書(shū)里只有文章,后者得益于Calibre可以自動(dòng)抓取全文并被攻克。

抓取網(wǎng)頁(yè)生成電子書(shū)(?4應用點(diǎn)滴不需要做網(wǎng)頁(yè)索引文件索引網(wǎng)頁(yè)生成器照樣)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 89 次瀏覽 ? 2021-12-29 22:17 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(?4應用點(diǎn)滴不需要做網(wǎng)頁(yè)索引文件索引網(wǎng)頁(yè)生成器照樣)
  我經(jīng)常上網(wǎng)搜索一些有趣的資料,還有很多軟件教程,放在硬盤(pán)上,隨時(shí)隨地看,不用擔心是否在線(xiàn)。我最近學(xué)習了 LiveMotion,我已經(jīng)完成了一些課程。保存的htm文件都是htm文件。當你閱讀它們時(shí),你必須一一打開(kāi)它們。感覺(jué)真的很麻煩。(如圖1)
  
  ?1
  如果可以集成到一個(gè)網(wǎng)頁(yè)索引文件中,就非常方便了。一想到網(wǎng)頁(yè)索引,雖然做網(wǎng)頁(yè)索引不是什么難事,但是勞動(dòng)強度不小,尤其是那些需要連接大量低級網(wǎng)頁(yè)的網(wǎng)頁(yè),更是更可怕。
  解決方案
  ABU Make Index v2.10.0004,這是一款由中國人編寫(xiě)的免費綠色軟件,體積小,288KB,可在作者主頁(yè)()下載。解壓后無(wú)需安裝,運行makehtmindex.exe即可使用。這是一個(gè)用于為擴展名為 Htm、Html、Txt、Gb、Jpg 和 Bmp 的文件生成索引網(wǎng)頁(yè)的工具。生成圖片索引時(shí)會(huì )自動(dòng)生成源圖片的縮略圖,因此也可以作為制作圖片縮略圖的工具。
  Web 索引生成器只需點(diǎn)擊三下鼠標,即可創(chuàng )建精美的 Web 索引,只需點(diǎn)擊三下五次分區即可。我要處理的是一個(gè)網(wǎng)頁(yè)文件,所以我首先選擇了上面的按鈕“生成Htm、Html、Txt、Gb擴展文件索引網(wǎng)頁(yè)”。(如圖2)
  
  ?2
  然后按“下一步”按鈕,出現網(wǎng)頁(yè)索引創(chuàng )建界面。瀏覽找到目標文件目錄,確定網(wǎng)頁(yè)索引的文件名和保存路徑,點(diǎn)擊“生成”按鈕完成網(wǎng)頁(yè)索引。(如圖3)
  
  ?3
  生成的Htm、Html、Txt、Gb等擴展名文件的索引網(wǎng)頁(yè),與源文件保存在同一目錄下(默認路徑不可更改)。然后在瀏覽器里看我的index文件,再看每節課的內容,每個(gè)htm文件的標題都被提取出來(lái)了,更有條理了?。ㄈ鐖D4)
  
  ?4
  應用位
  即使您不需要制作網(wǎng)頁(yè),網(wǎng)頁(yè)生成器仍然非常有用。每次在線(xiàn)下載大量網(wǎng)頁(yè)和圖片時(shí),網(wǎng)頁(yè)索引生成器都會(huì )將它們整齊排列,讓您盡收眼底。
  1、 為Htm、Html、Txt、Gb擴展名的文件生成索引網(wǎng)頁(yè),并保存在與源文件相同的目錄中。如果源文件目錄中同時(shí)存在上述兩種類(lèi)型的文件,則生成的網(wǎng)頁(yè)將有2個(gè)版塊和快捷方式書(shū)簽。如果只有其中一種,生成的網(wǎng)頁(yè)就不會(huì )被切分,自然也就沒(méi)有快捷書(shū)簽了。
  2、 生成Jpg和Bmp擴展文件(圖片)的索引網(wǎng)頁(yè),可以選擇保存文件的路徑。注意:當索引文件保存路徑與源文件路徑不同時(shí),可能是索引文件中的鏈接有問(wèn)題??s略圖保存在保存索引文件的目錄下的“PREVIEW”子目錄中(生成的縮略圖是一個(gè)未壓縮的假“JPG”文件)。
  注:由于IE對“BMP”文件支持不好,點(diǎn)擊索引文件中的“BMP”文件鏈接顯示異?;蝻@示圖標,NC沒(méi)問(wèn)題。
  如果你認為“上網(wǎng)”就是“下載”,那么使用這個(gè)工具可以讓“下載”的事情有條不紊。一定要善用工具,為我們創(chuàng )造休閑的工作和學(xué)習! 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(?4應用點(diǎn)滴不需要做網(wǎng)頁(yè)索引文件索引網(wǎng)頁(yè)生成器照樣)
  我經(jīng)常上網(wǎng)搜索一些有趣的資料,還有很多軟件教程,放在硬盤(pán)上,隨時(shí)隨地看,不用擔心是否在線(xiàn)。我最近學(xué)習了 LiveMotion,我已經(jīng)完成了一些課程。保存的htm文件都是htm文件。當你閱讀它們時(shí),你必須一一打開(kāi)它們。感覺(jué)真的很麻煩。(如圖1)
  
  ?1
  如果可以集成到一個(gè)網(wǎng)頁(yè)索引文件中,就非常方便了。一想到網(wǎng)頁(yè)索引,雖然做網(wǎng)頁(yè)索引不是什么難事,但是勞動(dòng)強度不小,尤其是那些需要連接大量低級網(wǎng)頁(yè)的網(wǎng)頁(yè),更是更可怕。
  解決方案
  ABU Make Index v2.10.0004,這是一款由中國人編寫(xiě)的免費綠色軟件,體積小,288KB,可在作者主頁(yè)()下載。解壓后無(wú)需安裝,運行makehtmindex.exe即可使用。這是一個(gè)用于為擴展名為 Htm、Html、Txt、Gb、Jpg 和 Bmp 的文件生成索引網(wǎng)頁(yè)的工具。生成圖片索引時(shí)會(huì )自動(dòng)生成源圖片的縮略圖,因此也可以作為制作圖片縮略圖的工具。
  Web 索引生成器只需點(diǎn)擊三下鼠標,即可創(chuàng )建精美的 Web 索引,只需點(diǎn)擊三下五次分區即可。我要處理的是一個(gè)網(wǎng)頁(yè)文件,所以我首先選擇了上面的按鈕“生成Htm、Html、Txt、Gb擴展文件索引網(wǎng)頁(yè)”。(如圖2)
  
  ?2
  然后按“下一步”按鈕,出現網(wǎng)頁(yè)索引創(chuàng )建界面。瀏覽找到目標文件目錄,確定網(wǎng)頁(yè)索引的文件名和保存路徑,點(diǎn)擊“生成”按鈕完成網(wǎng)頁(yè)索引。(如圖3)
  
  ?3
  生成的Htm、Html、Txt、Gb等擴展名文件的索引網(wǎng)頁(yè),與源文件保存在同一目錄下(默認路徑不可更改)。然后在瀏覽器里看我的index文件,再看每節課的內容,每個(gè)htm文件的標題都被提取出來(lái)了,更有條理了?。ㄈ鐖D4)
  
  ?4
  應用位
  即使您不需要制作網(wǎng)頁(yè),網(wǎng)頁(yè)生成器仍然非常有用。每次在線(xiàn)下載大量網(wǎng)頁(yè)和圖片時(shí),網(wǎng)頁(yè)索引生成器都會(huì )將它們整齊排列,讓您盡收眼底。
  1、 為Htm、Html、Txt、Gb擴展名的文件生成索引網(wǎng)頁(yè),并保存在與源文件相同的目錄中。如果源文件目錄中同時(shí)存在上述兩種類(lèi)型的文件,則生成的網(wǎng)頁(yè)將有2個(gè)版塊和快捷方式書(shū)簽。如果只有其中一種,生成的網(wǎng)頁(yè)就不會(huì )被切分,自然也就沒(méi)有快捷書(shū)簽了。
  2、 生成Jpg和Bmp擴展文件(圖片)的索引網(wǎng)頁(yè),可以選擇保存文件的路徑。注意:當索引文件保存路徑與源文件路徑不同時(shí),可能是索引文件中的鏈接有問(wèn)題??s略圖保存在保存索引文件的目錄下的“PREVIEW”子目錄中(生成的縮略圖是一個(gè)未壓縮的假“JPG”文件)。
  注:由于IE對“BMP”文件支持不好,點(diǎn)擊索引文件中的“BMP”文件鏈接顯示異?;蝻@示圖標,NC沒(méi)問(wèn)題。
  如果你認為“上網(wǎng)”就是“下載”,那么使用這個(gè)工具可以讓“下載”的事情有條不紊。一定要善用工具,為我們創(chuàng )造休閑的工作和學(xué)習!

抓取網(wǎng)頁(yè)生成電子書(shū)(Python最簡(jiǎn)單的爬蟲(chóng)requests-html安裝-)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 121 次瀏覽 ? 2021-12-29 17:09 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(Python最簡(jiǎn)單的爬蟲(chóng)requests-html安裝-)
  很多朋友都聽(tīng)說(shuō)過(guò)Python這個(gè)名字,Python也有很多爬蟲(chóng)框架,最簡(jiǎn)單的就是requests-html。和著(zhù)名的web請求庫requests是同一個(gè)作者。它專(zhuān)注于XML數據提取,可以說(shuō)是最簡(jiǎn)單的爬蟲(chóng)框架。
  
  安裝 requests-html
  這個(gè)庫的安裝很簡(jiǎn)單,直接通過(guò)pip安裝即可。
  pip install requests-html
  開(kāi)始使用
  Requests-html 使用起來(lái)也很簡(jiǎn)單,下面是一個(gè)簡(jiǎn)單的例子。像往常一樣,第一段介紹了 HTMLSession 來(lái)創(chuàng )建連接并獲取網(wǎng)頁(yè)數據。第二段創(chuàng )建連接并獲取我的短書(shū)的用戶(hù)頁(yè)面。第三段使用xpath語(yǔ)法獲取網(wǎng)頁(yè)上的用戶(hù)名,最后打印出來(lái)。
  from requests_html import HTMLSession
session = HTMLSession()
response = session.get(
&#39;https://www.jianshu.com/u/7753478e1554&#39;)
username = response.html.xpath(
&#39;//a[@class="name"]/text()&#39;, first=True)
print(username)
  看起來(lái)是不是很簡(jiǎn)單?是的,它真的很簡(jiǎn)單,接下來(lái)還有一些更有趣的功能。
  分析網(wǎng)頁(yè)
  在編寫(xiě)爬蟲(chóng)之前要做的一件事是分析網(wǎng)頁(yè)的結構。這個(gè)工作其實(shí)很簡(jiǎn)單,打開(kāi)你要訪(fǎng)問(wèn)的網(wǎng)頁(yè),按F12打開(kāi)開(kāi)發(fā)者工具,就可以在最左邊看到這樣一個(gè)按鈕。單擊此按鈕,然后在網(wǎng)頁(yè)上單擊您要查看的網(wǎng)頁(yè)元素,即可發(fā)現該元素對應的相關(guān)源代碼已經(jīng)為您定位好了。
  
  定位按鈕
  通過(guò)這個(gè)函數,我們可以很方便的對網(wǎng)頁(yè)進(jìn)行分析,然后通過(guò)它的結構來(lái)寫(xiě)一個(gè)爬蟲(chóng)。
  提取數據
  上面的 response.html 是網(wǎng)頁(yè)的根 HTML 節點(diǎn),可以在節點(diǎn)對象上調用一些方法來(lái)檢索數據。最常用的方法是 find 方法,它使用 CSS 選擇器來(lái)定位數據。對于上面的例子,你可以使用find方法來(lái)重寫(xiě)第三段。
  因為所有搜索方法返回的結果都是列表,如果確定只需要搜索一個(gè),可以將第一個(gè)參數設置為true,只返回第一個(gè)結果。find 方法返回的仍然是一個(gè)節點(diǎn)。如果您只需要節點(diǎn)的內容,只需調用其 text 屬性即可。
  用戶(hù)名對應的HTML結構如圖所示。
  
  代碼顯示如下。
  username?=?response.html.find(&#39;a.name&#39;,?first=True).text
  除了 find 方法之外,您還可以使用 xpath 方法來(lái)查找具有 xpath 語(yǔ)法的節點(diǎn),如第一個(gè)示例所示。我個(gè)人更喜歡 xpath 語(yǔ)法。CSS選擇器雖然比較流行,但是寫(xiě)出來(lái)的效果有點(diǎn)奇怪,沒(méi)有xpath那么整潔。
  這是查看如何獲取我的短書(shū)的個(gè)人資料的同一頁(yè)面。網(wǎng)頁(yè)代碼如圖所示。
  
  代碼顯示如下。
  description = response.html.xpath(
&#39;//div[@class="description"]/div[@class="js-intro"]/text()&#39;, first=True)
  CSS 選擇器和 XPATH 語(yǔ)法不是本文的主要內容。如果你對這方面不熟悉,最好閱讀相關(guān)教程。當然,如果您有任何問(wèn)題,也可以提出。如果你想看,我也可以寫(xiě)一篇文章介紹這些語(yǔ)法知識。
  渲染網(wǎng)頁(yè)
  有些網(wǎng)頁(yè)采用前后端分離技術(shù)開(kāi)發(fā),需要瀏覽器渲染才能完整顯示。如果使用爬蟲(chóng)查看,只能顯示部分內容。這時(shí)候瀏覽器需要渲染頁(yè)面才能得到完整的頁(yè)面。使用 requests-html,過(guò)程非常簡(jiǎn)單。
  首先我們來(lái)看一個(gè)需要渲染的網(wǎng)頁(yè)的例子。以下代碼訪(fǎng)問(wèn)我的短書(shū)用戶(hù)頁(yè)面,然后嘗試獲取我的所有文章。但是如果你運行這個(gè)例子,你會(huì )發(fā)現你只能得到前幾項。由于短書(shū)頁(yè)面是典型的需要瀏覽器渲染的頁(yè)面,爬蟲(chóng)獲取的網(wǎng)頁(yè)是不完整的。
  from requests_html import HTMLSession
session = HTMLSession()
headers = {
&#39;user-agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.119 Safari/537.36&#39;
}
url = &#39;https://www.jianshu.com/u/7753478e1554&#39;
r = session.get(url, headers=headers)
for a in r.html.xpath(&#39;//ul[@class="note-list"]/li/div[@class="content"]/a[@class="title"]&#39;):
title = a.text
link = f&#39;https://www.jianshu.com{a.attrs["href"]}&#39;
print(f&#39;《{title}》,{link}&#39;)
  那么如何渲染網(wǎng)頁(yè)以獲得完整的結果呢?其實(shí)很簡(jiǎn)單,在查詢(xún)HTML節點(diǎn)之前調用render函數即可。
  
  使用瀏覽器渲染的渲染函數
  原理也很簡(jiǎn)單。當第一次調用渲染時(shí),requests-html 將在本地下載一個(gè) Chrome 瀏覽器并使用它來(lái)渲染網(wǎng)頁(yè)。這樣我們就可以得到渲染出來(lái)的頁(yè)面了。
  但是對于短書(shū)的例子,還是存在一些問(wèn)題,因為如果你在瀏覽器中打開(kāi)這個(gè)網(wǎng)頁(yè),你會(huì )發(fā)現有些文章只有在瀏覽器向下滑動(dòng)頁(yè)面時(shí)才開(kāi)始渲染。不過(guò),聰明的作者早就考慮過(guò)這種情況。渲染函數支持滑動(dòng)參數。設置后會(huì )模擬瀏覽器滑動(dòng)操作來(lái)解決這個(gè)問(wèn)題。
  r.html.render(scrolldown=50, sleep=0.2)
  節點(diǎn)對象
  不管上面的r.html還是find/xpath函數返回的結果都是節點(diǎn)對象。除了上面介紹的幾種提取數據的方法外,節點(diǎn)對象還有以下屬性,在我們提取數據的時(shí)候也是非常有用的。
  
  相比專(zhuān)業(yè)的爬蟲(chóng)框架scrapy,還是解析庫BeautifulSoup,只用于解析XML。requests-html 可以說(shuō)是恰到好處。沒(méi)有前者那么難學(xué),也不需要像后者那樣使用HTTP請求庫。如果您需要臨時(shí)抓取幾個(gè)網(wǎng)頁(yè),那么 requests-html 是您的最佳選擇。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(Python最簡(jiǎn)單的爬蟲(chóng)requests-html安裝-)
  很多朋友都聽(tīng)說(shuō)過(guò)Python這個(gè)名字,Python也有很多爬蟲(chóng)框架,最簡(jiǎn)單的就是requests-html。和著(zhù)名的web請求庫requests是同一個(gè)作者。它專(zhuān)注于XML數據提取,可以說(shuō)是最簡(jiǎn)單的爬蟲(chóng)框架。
  
  安裝 requests-html
  這個(gè)庫的安裝很簡(jiǎn)單,直接通過(guò)pip安裝即可。
  pip install requests-html
  開(kāi)始使用
  Requests-html 使用起來(lái)也很簡(jiǎn)單,下面是一個(gè)簡(jiǎn)單的例子。像往常一樣,第一段介紹了 HTMLSession 來(lái)創(chuàng )建連接并獲取網(wǎng)頁(yè)數據。第二段創(chuàng )建連接并獲取我的短書(shū)的用戶(hù)頁(yè)面。第三段使用xpath語(yǔ)法獲取網(wǎng)頁(yè)上的用戶(hù)名,最后打印出來(lái)。
  from requests_html import HTMLSession
session = HTMLSession()
response = session.get(
&#39;https://www.jianshu.com/u/7753478e1554&#39;)
username = response.html.xpath(
&#39;//a[@class="name"]/text()&#39;, first=True)
print(username)
  看起來(lái)是不是很簡(jiǎn)單?是的,它真的很簡(jiǎn)單,接下來(lái)還有一些更有趣的功能。
  分析網(wǎng)頁(yè)
  在編寫(xiě)爬蟲(chóng)之前要做的一件事是分析網(wǎng)頁(yè)的結構。這個(gè)工作其實(shí)很簡(jiǎn)單,打開(kāi)你要訪(fǎng)問(wèn)的網(wǎng)頁(yè),按F12打開(kāi)開(kāi)發(fā)者工具,就可以在最左邊看到這樣一個(gè)按鈕。單擊此按鈕,然后在網(wǎng)頁(yè)上單擊您要查看的網(wǎng)頁(yè)元素,即可發(fā)現該元素對應的相關(guān)源代碼已經(jīng)為您定位好了。
  
  定位按鈕
  通過(guò)這個(gè)函數,我們可以很方便的對網(wǎng)頁(yè)進(jìn)行分析,然后通過(guò)它的結構來(lái)寫(xiě)一個(gè)爬蟲(chóng)。
  提取數據
  上面的 response.html 是網(wǎng)頁(yè)的根 HTML 節點(diǎn),可以在節點(diǎn)對象上調用一些方法來(lái)檢索數據。最常用的方法是 find 方法,它使用 CSS 選擇器來(lái)定位數據。對于上面的例子,你可以使用find方法來(lái)重寫(xiě)第三段。
  因為所有搜索方法返回的結果都是列表,如果確定只需要搜索一個(gè),可以將第一個(gè)參數設置為true,只返回第一個(gè)結果。find 方法返回的仍然是一個(gè)節點(diǎn)。如果您只需要節點(diǎn)的內容,只需調用其 text 屬性即可。
  用戶(hù)名對應的HTML結構如圖所示。
  
  代碼顯示如下。
  username?=?response.html.find(&#39;a.name&#39;,?first=True).text
  除了 find 方法之外,您還可以使用 xpath 方法來(lái)查找具有 xpath 語(yǔ)法的節點(diǎn),如第一個(gè)示例所示。我個(gè)人更喜歡 xpath 語(yǔ)法。CSS選擇器雖然比較流行,但是寫(xiě)出來(lái)的效果有點(diǎn)奇怪,沒(méi)有xpath那么整潔。
  這是查看如何獲取我的短書(shū)的個(gè)人資料的同一頁(yè)面。網(wǎng)頁(yè)代碼如圖所示。
  
  代碼顯示如下。
  description = response.html.xpath(
&#39;//div[@class="description"]/div[@class="js-intro"]/text()&#39;, first=True)
  CSS 選擇器和 XPATH 語(yǔ)法不是本文的主要內容。如果你對這方面不熟悉,最好閱讀相關(guān)教程。當然,如果您有任何問(wèn)題,也可以提出。如果你想看,我也可以寫(xiě)一篇文章介紹這些語(yǔ)法知識。
  渲染網(wǎng)頁(yè)
  有些網(wǎng)頁(yè)采用前后端分離技術(shù)開(kāi)發(fā),需要瀏覽器渲染才能完整顯示。如果使用爬蟲(chóng)查看,只能顯示部分內容。這時(shí)候瀏覽器需要渲染頁(yè)面才能得到完整的頁(yè)面。使用 requests-html,過(guò)程非常簡(jiǎn)單。
  首先我們來(lái)看一個(gè)需要渲染的網(wǎng)頁(yè)的例子。以下代碼訪(fǎng)問(wèn)我的短書(shū)用戶(hù)頁(yè)面,然后嘗試獲取我的所有文章。但是如果你運行這個(gè)例子,你會(huì )發(fā)現你只能得到前幾項。由于短書(shū)頁(yè)面是典型的需要瀏覽器渲染的頁(yè)面,爬蟲(chóng)獲取的網(wǎng)頁(yè)是不完整的。
  from requests_html import HTMLSession
session = HTMLSession()
headers = {
&#39;user-agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.119 Safari/537.36&#39;
}
url = &#39;https://www.jianshu.com/u/7753478e1554&#39;
r = session.get(url, headers=headers)
for a in r.html.xpath(&#39;//ul[@class="note-list"]/li/div[@class="content"]/a[@class="title"]&#39;):
title = a.text
link = f&#39;https://www.jianshu.com{a.attrs["href"]}&#39;
print(f&#39;《{title}》,{link}&#39;)
  那么如何渲染網(wǎng)頁(yè)以獲得完整的結果呢?其實(shí)很簡(jiǎn)單,在查詢(xún)HTML節點(diǎn)之前調用render函數即可。
  
  使用瀏覽器渲染的渲染函數
  原理也很簡(jiǎn)單。當第一次調用渲染時(shí),requests-html 將在本地下載一個(gè) Chrome 瀏覽器并使用它來(lái)渲染網(wǎng)頁(yè)。這樣我們就可以得到渲染出來(lái)的頁(yè)面了。
  但是對于短書(shū)的例子,還是存在一些問(wèn)題,因為如果你在瀏覽器中打開(kāi)這個(gè)網(wǎng)頁(yè),你會(huì )發(fā)現有些文章只有在瀏覽器向下滑動(dòng)頁(yè)面時(shí)才開(kāi)始渲染。不過(guò),聰明的作者早就考慮過(guò)這種情況。渲染函數支持滑動(dòng)參數。設置后會(huì )模擬瀏覽器滑動(dòng)操作來(lái)解決這個(gè)問(wèn)題。
  r.html.render(scrolldown=50, sleep=0.2)
  節點(diǎn)對象
  不管上面的r.html還是find/xpath函數返回的結果都是節點(diǎn)對象。除了上面介紹的幾種提取數據的方法外,節點(diǎn)對象還有以下屬性,在我們提取數據的時(shí)候也是非常有用的。
  
  相比專(zhuān)業(yè)的爬蟲(chóng)框架scrapy,還是解析庫BeautifulSoup,只用于解析XML。requests-html 可以說(shuō)是恰到好處。沒(méi)有前者那么難學(xué),也不需要像后者那樣使用HTTP請求庫。如果您需要臨時(shí)抓取幾個(gè)網(wǎng)頁(yè),那么 requests-html 是您的最佳選擇。

抓取網(wǎng)頁(yè)生成電子書(shū)(【手語(yǔ)服務(wù),助力溝通無(wú)障礙】(12月29日19:00) )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 108 次瀏覽 ? 2021-12-29 12:21 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(【手語(yǔ)服務(wù),助力溝通無(wú)障礙】(12月29日19:00)
)
  【手語(yǔ)服務(wù)助溝通障礙】12月29日19:00現場(chǎng)報名&gt;&gt;&gt;
  
  蘇升不服第167篇原創(chuàng )文章,將此公眾號設為star,第一時(shí)間閱讀最新文章。
  之前寫(xiě)過(guò)以下關(guān)于備份的文章:
  再說(shuō)備份微博
  一鍵備份微博并導出為PDF。順便用Python分析微博賬號數據
  再說(shuō)備份網(wǎng)頁(yè)和公眾號文章
  如何備份公眾號文章和可能被刪除的網(wǎng)頁(yè)
  我想看的公眾號文章被刪了怎么辦?
  上面寫(xiě)的公眾號的備份方法是單機備份。如果要備份某個(gè)公眾號的所有文章,有點(diǎn)太麻煩了,所以今天分享一個(gè)用Python一鍵備份某個(gè)公眾號的所有文章。不用擔心你想閱讀的文章被刪除。我以我自己的公眾號蘇升不主為例。原理是通過(guò)抓包抓取微信客戶(hù)端接口,使用Python請求微信接口獲取公眾號文章鏈接并下載。.
  查爾斯捕獲
  常用的抓包工具有Fiddler、Charles、Charles這里用到的,先到官網(wǎng)下載軟件,然后打開(kāi)微信客戶(hù)端找到公眾號,進(jìn)入文章列表可以看到已經(jīng)發(fā)布的文章。
  
  但是Charles在安裝證書(shū)前無(wú)法獲取https接口數據,顯示未知。
  
  安裝證書(shū)后,在proxy-&gt;ssl代理設置中添加域名和主機。
  
  再次爬取查看公眾號文章界面數據。
  
  公眾號文章/mp/profile_ext?action=getmsg&amp;__biz=MjM5ODIzNDEx&amp;f=json&amp;offset=25&amp;count=10&amp;is_ok=1&amp;scene=124&amp;uin=MTU0MTQzNj&amp;key=f57423的接口地址,參數很多,__biz之間有用的參數只有一個(gè)還有公眾號id,uin是用戶(hù)的id,這個(gè)不變,key是請求的秘鑰,一段時(shí)間后失效,offset是偏移量,count是每次請求的次數,返回值可以看到返回的數據包括文章標題title,摘要摘要,文章地址content_url,閱讀源地址source_url,封面封面,作者作者,抓住這些有用的數據。
  Python爬取公眾號文章
  上面分析了接口參數和返回數據,就開(kāi)始用Python請求微信接口吧。
  
  這里只獲取原創(chuàng )文章。我的公眾號有160多篇原創(chuàng )文章,生成HTML文件需要2分鐘。
  
  用谷歌瀏覽器打開(kāi)看看。
  
  生成的HTML文件也可以轉成chm格式,需要安裝Easy CHM軟件,這是一個(gè)快速創(chuàng )建CHM電子書(shū)或CHM幫助文件的強大工具
  
  左邊是文章標題,右邊是文章內容,看起來(lái)很方便。
  
  還有收錄
文章標題和鏈接的降價(jià)文件。上一篇markdown的文章介紹了使用Markdown寫(xiě)簡(jiǎn)歷和PPT。
  
  Excel 文件格式也可用。
  
  HTML、markdown、Excel生成都比較快,因為都是文本,下面開(kāi)始導出PDF。
  導出 PDF
  導出PDF的工具是wkhtmltopdf。首先到官網(wǎng)下載安裝wkhtmltopdf。安裝完成后,設置環(huán)境變量。上一篇文章寫(xiě)了一些你可能不知道的windows技巧,??然后就可以直接從命令行生成PDF了。
  λ wkhtmltopdf http://www.baidu.com baidu.pdfLoading pages (1/6)Counting pages (2/6)Resolving links (4/6)Loading headers and footers (5/6)Printing pages (6/6)Done 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(【手語(yǔ)服務(wù),助力溝通無(wú)障礙】(12月29日19:00)
)
  【手語(yǔ)服務(wù)助溝通障礙】12月29日19:00現場(chǎng)報名&gt;&gt;&gt;
  
  蘇升不服第167篇原創(chuàng )文章,將此公眾號設為star,第一時(shí)間閱讀最新文章。
  之前寫(xiě)過(guò)以下關(guān)于備份的文章:
  再說(shuō)備份微博
  一鍵備份微博并導出為PDF。順便用Python分析微博賬號數據
  再說(shuō)備份網(wǎng)頁(yè)和公眾號文章
  如何備份公眾號文章和可能被刪除的網(wǎng)頁(yè)
  我想看的公眾號文章被刪了怎么辦?
  上面寫(xiě)的公眾號的備份方法是單機備份。如果要備份某個(gè)公眾號的所有文章,有點(diǎn)太麻煩了,所以今天分享一個(gè)用Python一鍵備份某個(gè)公眾號的所有文章。不用擔心你想閱讀的文章被刪除。我以我自己的公眾號蘇升不主為例。原理是通過(guò)抓包抓取微信客戶(hù)端接口,使用Python請求微信接口獲取公眾號文章鏈接并下載。.
  查爾斯捕獲
  常用的抓包工具有Fiddler、Charles、Charles這里用到的,先到官網(wǎng)下載軟件,然后打開(kāi)微信客戶(hù)端找到公眾號,進(jìn)入文章列表可以看到已經(jīng)發(fā)布的文章。
  
  但是Charles在安裝證書(shū)前無(wú)法獲取https接口數據,顯示未知。
  
  安裝證書(shū)后,在proxy-&gt;ssl代理設置中添加域名和主機。
  
  再次爬取查看公眾號文章界面數據。
  
  公眾號文章/mp/profile_ext?action=getmsg&amp;__biz=MjM5ODIzNDEx&amp;f=json&amp;offset=25&amp;count=10&amp;is_ok=1&amp;scene=124&amp;uin=MTU0MTQzNj&amp;key=f57423的接口地址,參數很多,__biz之間有用的參數只有一個(gè)還有公眾號id,uin是用戶(hù)的id,這個(gè)不變,key是請求的秘鑰,一段時(shí)間后失效,offset是偏移量,count是每次請求的次數,返回值可以看到返回的數據包括文章標題title,摘要摘要,文章地址content_url,閱讀源地址source_url,封面封面,作者作者,抓住這些有用的數據。
  Python爬取公眾號文章
  上面分析了接口參數和返回數據,就開(kāi)始用Python請求微信接口吧。
  
  這里只獲取原創(chuàng )文章。我的公眾號有160多篇原創(chuàng )文章,生成HTML文件需要2分鐘。
  
  用谷歌瀏覽器打開(kāi)看看。
  
  生成的HTML文件也可以轉成chm格式,需要安裝Easy CHM軟件,這是一個(gè)快速創(chuàng )建CHM電子書(shū)或CHM幫助文件的強大工具
  
  左邊是文章標題,右邊是文章內容,看起來(lái)很方便。
  
  還有收錄
文章標題和鏈接的降價(jià)文件。上一篇markdown的文章介紹了使用Markdown寫(xiě)簡(jiǎn)歷和PPT。
  
  Excel 文件格式也可用。
  
  HTML、markdown、Excel生成都比較快,因為都是文本,下面開(kāi)始導出PDF。
  導出 PDF
  導出PDF的工具是wkhtmltopdf。首先到官網(wǎng)下載安裝wkhtmltopdf。安裝完成后,設置環(huán)境變量。上一篇文章寫(xiě)了一些你可能不知道的windows技巧,??然后就可以直接從命令行生成PDF了。
  λ wkhtmltopdf http://www.baidu.com baidu.pdfLoading pages (1/6)Counting pages (2/6)Resolving links (4/6)Loading headers and footers (5/6)Printing pages (6/6)Done

抓取網(wǎng)頁(yè)生成電子書(shū)(弘一網(wǎng)童2.7綠色注冊.rar智能化智能化的網(wǎng)頁(yè)保存工具)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 84 次瀏覽 ? 2021-12-29 12:16 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(弘一網(wǎng)童2.7綠色注冊.rar智能化智能化的網(wǎng)頁(yè)保存工具)
  弘毅網(wǎng)子2.7 綠色注冊.rar
  智能網(wǎng)頁(yè)保存工具——WebPortero是一款集網(wǎng)頁(yè)抓取、內容識別、網(wǎng)頁(yè)編輯、格式轉換于一體的智能網(wǎng)頁(yè)保存工具??梢员4婢W(wǎng)頁(yè)文字、圖片、Flash等。一鍵將網(wǎng)頁(yè)保存為WORD文件!您只需要點(diǎn)擊“Netboy,另存為WORD文件”,Netboy就會(huì )識別當前網(wǎng)頁(yè)的正文內容,然后將正文內容保存為WORD文件。完成了原本需要打開(kāi)WORD、選擇文本內容、復制、過(guò)濾格式、粘貼到WORD以及保存等一系列工作;自動(dòng)保存“下一頁(yè)” 現在網(wǎng)上的一篇文章往往是分頁(yè)顯示的。如果你想把這樣的一篇文章保存下來(lái),就需要一頁(yè)一頁(yè)的復制。Netboys 可以自動(dòng)保存下一頁(yè)并為您完成;當您在網(wǎng)上查找信息時(shí),會(huì )從不同的頁(yè)面中提取多個(gè)網(wǎng)頁(yè)的內容,并編譯在一個(gè)文件中,Netboy 集成了提取、采集
、編輯和保存的功能,大大提高了您的效率;批量保存網(wǎng)頁(yè) 批量保存多個(gè)鏈接中的網(wǎng)頁(yè)內容,并將這些內容保存到一個(gè)文件中;保存圖片 保存網(wǎng)頁(yè)中的所有圖片或多個(gè)鏈接中的所有圖片,并可根據圖片大小過(guò)濾文件,在多個(gè)鏈接中識別您關(guān)注的圖片;生成CHM電子書(shū)批量抓取網(wǎng)頁(yè),一鍵網(wǎng)頁(yè)合并生成CHM電子書(shū)。還可以使用CHM電子書(shū)對網(wǎng)頁(yè)進(jìn)行壓縮和存儲,避免保存太多不方便管理的網(wǎng)頁(yè);保存一個(gè)完整的網(wǎng)頁(yè)可以完整地保存收錄
動(dòng)態(tài)加載內容的網(wǎng)頁(yè)。netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間.
  現在下載 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(弘一網(wǎng)童2.7綠色注冊.rar智能化智能化的網(wǎng)頁(yè)保存工具)
  弘毅網(wǎng)子2.7 綠色注冊.rar
  智能網(wǎng)頁(yè)保存工具——WebPortero是一款集網(wǎng)頁(yè)抓取、內容識別、網(wǎng)頁(yè)編輯、格式轉換于一體的智能網(wǎng)頁(yè)保存工具??梢员4婢W(wǎng)頁(yè)文字、圖片、Flash等。一鍵將網(wǎng)頁(yè)保存為WORD文件!您只需要點(diǎn)擊“Netboy,另存為WORD文件”,Netboy就會(huì )識別當前網(wǎng)頁(yè)的正文內容,然后將正文內容保存為WORD文件。完成了原本需要打開(kāi)WORD、選擇文本內容、復制、過(guò)濾格式、粘貼到WORD以及保存等一系列工作;自動(dòng)保存“下一頁(yè)” 現在網(wǎng)上的一篇文章往往是分頁(yè)顯示的。如果你想把這樣的一篇文章保存下來(lái),就需要一頁(yè)一頁(yè)的復制。Netboys 可以自動(dòng)保存下一頁(yè)并為您完成;當您在網(wǎng)上查找信息時(shí),會(huì )從不同的頁(yè)面中提取多個(gè)網(wǎng)頁(yè)的內容,并編譯在一個(gè)文件中,Netboy 集成了提取、采集
、編輯和保存的功能,大大提高了您的效率;批量保存網(wǎng)頁(yè) 批量保存多個(gè)鏈接中的網(wǎng)頁(yè)內容,并將這些內容保存到一個(gè)文件中;保存圖片 保存網(wǎng)頁(yè)中的所有圖片或多個(gè)鏈接中的所有圖片,并可根據圖片大小過(guò)濾文件,在多個(gè)鏈接中識別您關(guān)注的圖片;生成CHM電子書(shū)批量抓取網(wǎng)頁(yè),一鍵網(wǎng)頁(yè)合并生成CHM電子書(shū)。還可以使用CHM電子書(shū)對網(wǎng)頁(yè)進(jìn)行壓縮和存儲,避免保存太多不方便管理的網(wǎng)頁(yè);保存一個(gè)完整的網(wǎng)頁(yè)可以完整地保存收錄
動(dòng)態(tài)加載內容的網(wǎng)頁(yè)。netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間. netboy保存完整網(wǎng)頁(yè)和瀏覽器自己的網(wǎng)頁(yè)另存為netboy的區別是保存當前頁(yè)面顯示的內容,包括動(dòng)態(tài)加載的。瀏覽器內置的保存功能是保存源文件,動(dòng)態(tài)加載的內容不保存。; 引用網(wǎng)頁(yè)中的Flash 當您在網(wǎng)頁(yè)上看到漂亮的Flash 時(shí),如果您想引用它,Netboy 會(huì )為您提取Flash 的文件地址,方便您引用,例如裝扮您的空間.
  現在下載

抓取網(wǎng)頁(yè)生成電子書(shū)(mitmdump爬取“得到”App電子書(shū)信息(一)_Python學(xué)習 )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 112 次瀏覽 ? 2021-12-29 12:14 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(mitmdump爬取“得到”App電子書(shū)信息(一)_Python學(xué)習
)
  前言
  文章文字及圖片來(lái)自網(wǎng)絡(luò ),僅供學(xué)習交流之用。它們沒(méi)有任何商業(yè)用途。版權屬于原作者。如果您有任何問(wèn)題,請聯(lián)系我們進(jìn)行處理。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入
  mitmdump爬取“獲取”App電子書(shū)信息
  “Get”App是羅季思偉出品的碎片化時(shí)間學(xué)習App。應用中有很多學(xué)習資源。但是“獲取”App沒(méi)有對應的網(wǎng)頁(yè)版,只能通過(guò)App獲取信息。這次我們將通過(guò)抓取它的App來(lái)練習mitmdump的使用。
  抓取目標
  我們的爬取目標是App電子書(shū)版塊中的電子書(shū)信息,并將信息保存到MongoDB中,如圖。
  
  我們想爬下書(shū)名、介紹、封面、價(jià)格,但是這次爬取的重點(diǎn)是了解mitmdump工具的使用,所以暫時(shí)不涉及自動(dòng)爬取,操作應用程序仍然是手動(dòng)執行的。mitmdump 負責捕獲響應并提取和保存數據。
  2. 準備
  請確保您已經(jīng)正確安裝了mitmproxy和mitmdump,手機和PC在同一個(gè)局域網(wǎng)內,同時(shí)配置了mitmproxy的CA證書(shū),安裝了MongoDB并運行其服務(wù),安裝了PyMongo庫。具體配置請參考第一章說(shuō)明。
  3. 爬取分析
  首先查找URL,返回當前頁(yè)面的內容。我們寫(xiě)一個(gè)腳本如下:
  def response(flow):
print(flow.request.url)
print(flow.response.text)
  這里只輸出請求的URL和響應體內容,也就是請求鏈接和響應內容這兩個(gè)最關(guān)鍵的部分。腳本的名稱(chēng)保存為 script.py。
  接下來(lái)運行mitmdump,命令如下:
  mitmdump -s script.py
  打開(kāi)“Get”App的電子書(shū)頁(yè)面,在PC控制臺上可以看到相應的輸出。然后滑動(dòng)頁(yè)面加載更多電子書(shū),控制臺中出現的新輸出內容就是App發(fā)出的新加載請求,里面收錄
了下一頁(yè)的電子書(shū)內容??刂婆_輸出結果示例如圖所示。
  
  可以看到URL所在的界面,后面加了一個(gè)sign參數。通過(guò)URL的名稱(chēng),可以確定這是獲取電子書(shū)列表的接口。URL下面的輸出是響應內容,是一個(gè)JSON格式的字符串。我們將其格式化為如圖所示。
  
  格式化的內容收錄
ac 字段和一個(gè)列表字段。列表的每個(gè)元素都收錄
價(jià)格、標題、描述等,第一個(gè)返回結果是電子書(shū)《情人》,此時(shí)App的內容也是這本電子書(shū),描述的內容和價(jià)格也完全匹配。App頁(yè)面如圖所示。
  
  這意味著(zhù)當前接口是獲取電子書(shū)信息的接口,我們只需要從該接口獲取內容即可。然后解析返回的結果并將結果保存到數據庫中。
  4. 數據采集
  接下來(lái),我們需要對接口進(jìn)行過(guò)濾和限制,抓取上面分析的接口,然后在結果中提取相應的字段。
  在這里,我們修改腳本如下:
  import json
from mitmproxy import ctx

def response(flow):
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
ctx.log.info(str(book))
  再次滑動(dòng)電子書(shū)頁(yè)面,觀(guān)察PC控制臺上的輸出,如圖。
  
  控制臺輸出
  現在輸出圖書(shū)的所有信息,一個(gè)圖書(shū)信息對應一條JSON格式的數據。
  5. 提取并保存
  接下來(lái)我們需要提取信息,然后將信息保存到數據庫中。為方便起見(jiàn),我們選擇MongoDB數據庫。
  該腳本還可以添加用于提取信息和保存信息的部分。修改后的代碼如下:
  import json
import pymongo
from mitmproxy import ctx

client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]

def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data)
  再次滑動(dòng)頁(yè)面,控制臺會(huì )輸出信息,如圖。
  
  現在輸出的每一條內容都是提取出來(lái)的內容,包括電子書(shū)的書(shū)名、封面、描述、價(jià)格等信息。
  一開(kāi)始我們聲明了MongoDB的數據庫連接。提取信息后,調用對象的insert()方法將數據插入到數據庫中。
  滑動(dòng)幾頁(yè),發(fā)現所有書(shū)籍信息都保存在MongoDB中,如圖。
  
  至此,我們已經(jīng)使用了一個(gè)非常簡(jiǎn)單的腳本來(lái)保存“Get”App的電子書(shū)信息。
  代碼部分
  import json
import pymongo
from mitmproxy import ctx
client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]
def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {
&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data) 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(mitmdump爬取“得到”App電子書(shū)信息(一)_Python學(xué)習
)
  前言
  文章文字及圖片來(lái)自網(wǎng)絡(luò ),僅供學(xué)習交流之用。它們沒(méi)有任何商業(yè)用途。版權屬于原作者。如果您有任何問(wèn)題,請聯(lián)系我們進(jìn)行處理。
  PS:如需Python學(xué)習資料,可點(diǎn)擊下方鏈接自行獲取
  Python免費學(xué)習資料和群交流答案 點(diǎn)擊加入
  mitmdump爬取“獲取”App電子書(shū)信息
  “Get”App是羅季思偉出品的碎片化時(shí)間學(xué)習App。應用中有很多學(xué)習資源。但是“獲取”App沒(méi)有對應的網(wǎng)頁(yè)版,只能通過(guò)App獲取信息。這次我們將通過(guò)抓取它的App來(lái)練習mitmdump的使用。
  抓取目標
  我們的爬取目標是App電子書(shū)版塊中的電子書(shū)信息,并將信息保存到MongoDB中,如圖。
  
  我們想爬下書(shū)名、介紹、封面、價(jià)格,但是這次爬取的重點(diǎn)是了解mitmdump工具的使用,所以暫時(shí)不涉及自動(dòng)爬取,操作應用程序仍然是手動(dòng)執行的。mitmdump 負責捕獲響應并提取和保存數據。
  2. 準備
  請確保您已經(jīng)正確安裝了mitmproxy和mitmdump,手機和PC在同一個(gè)局域網(wǎng)內,同時(shí)配置了mitmproxy的CA證書(shū),安裝了MongoDB并運行其服務(wù),安裝了PyMongo庫。具體配置請參考第一章說(shuō)明。
  3. 爬取分析
  首先查找URL,返回當前頁(yè)面的內容。我們寫(xiě)一個(gè)腳本如下:
  def response(flow):
print(flow.request.url)
print(flow.response.text)
  這里只輸出請求的URL和響應體內容,也就是請求鏈接和響應內容這兩個(gè)最關(guān)鍵的部分。腳本的名稱(chēng)保存為 script.py。
  接下來(lái)運行mitmdump,命令如下:
  mitmdump -s script.py
  打開(kāi)“Get”App的電子書(shū)頁(yè)面,在PC控制臺上可以看到相應的輸出。然后滑動(dòng)頁(yè)面加載更多電子書(shū),控制臺中出現的新輸出內容就是App發(fā)出的新加載請求,里面收錄
了下一頁(yè)的電子書(shū)內容??刂婆_輸出結果示例如圖所示。
  
  可以看到URL所在的界面,后面加了一個(gè)sign參數。通過(guò)URL的名稱(chēng),可以確定這是獲取電子書(shū)列表的接口。URL下面的輸出是響應內容,是一個(gè)JSON格式的字符串。我們將其格式化為如圖所示。
  
  格式化的內容收錄
ac 字段和一個(gè)列表字段。列表的每個(gè)元素都收錄
價(jià)格、標題、描述等,第一個(gè)返回結果是電子書(shū)《情人》,此時(shí)App的內容也是這本電子書(shū),描述的內容和價(jià)格也完全匹配。App頁(yè)面如圖所示。
  
  這意味著(zhù)當前接口是獲取電子書(shū)信息的接口,我們只需要從該接口獲取內容即可。然后解析返回的結果并將結果保存到數據庫中。
  4. 數據采集
  接下來(lái),我們需要對接口進(jìn)行過(guò)濾和限制,抓取上面分析的接口,然后在結果中提取相應的字段。
  在這里,我們修改腳本如下:
  import json
from mitmproxy import ctx

def response(flow):
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
ctx.log.info(str(book))
  再次滑動(dòng)電子書(shū)頁(yè)面,觀(guān)察PC控制臺上的輸出,如圖。
  
  控制臺輸出
  現在輸出圖書(shū)的所有信息,一個(gè)圖書(shū)信息對應一條JSON格式的數據。
  5. 提取并保存
  接下來(lái)我們需要提取信息,然后將信息保存到數據庫中。為方便起見(jiàn),我們選擇MongoDB數據庫。
  該腳本還可以添加用于提取信息和保存信息的部分。修改后的代碼如下:
  import json
import pymongo
from mitmproxy import ctx

client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]

def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data)
  再次滑動(dòng)頁(yè)面,控制臺會(huì )輸出信息,如圖。
  
  現在輸出的每一條內容都是提取出來(lái)的內容,包括電子書(shū)的書(shū)名、封面、描述、價(jià)格等信息。
  一開(kāi)始我們聲明了MongoDB的數據庫連接。提取信息后,調用對象的insert()方法將數據插入到數據庫中。
  滑動(dòng)幾頁(yè),發(fā)現所有書(shū)籍信息都保存在MongoDB中,如圖。
  
  至此,我們已經(jīng)使用了一個(gè)非常簡(jiǎn)單的腳本來(lái)保存“Get”App的電子書(shū)信息。
  代碼部分
  import json
import pymongo
from mitmproxy import ctx
client = pymongo.MongoClient(&#39;localhost&#39;)
db = client[&#39;igetget&#39;]
collection = db[&#39;books&#39;]
def response(flow):
global collection
url = &#39;https://dedao.igetget.com/v3/d ... 39%3B
if flow.request.url.startswith(url):
text = flow.response.text
data = json.loads(text)
books = data.get(&#39;c&#39;).get(&#39;list&#39;)
for book in books:
data = {
&#39;title&#39;: book.get(&#39;operating_title&#39;),
&#39;cover&#39;: book.get(&#39;cover&#39;),
&#39;summary&#39;: book.get(&#39;other_share_summary&#39;),
&#39;price&#39;: book.get(&#39;price&#39;)
}
ctx.log.info(str(data))
collection.insert(data)

抓取網(wǎng)頁(yè)生成電子書(shū)(通過(guò)Python和爬蟲(chóng),可以完成怎樣的小工具?|知乎 )

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 87 次瀏覽 ? 2021-12-29 12:13 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(通過(guò)Python和爬蟲(chóng),可以完成怎樣的小工具?|知乎
)
  總是有同學(xué)問(wèn)我在學(xué)習了Python基礎知識后是否不知道我可以做些什么來(lái)改進(jìn)。今天我就用一個(gè)小例子來(lái)告訴大家通過(guò)Python和爬蟲(chóng)可以完成什么樣的小工具。
  在知乎上,你一定關(guān)注過(guò)一些不錯的專(zhuān)欄(比如Crossin的編程課堂)。但如果有一天,你最喜歡的受訪(fǎng)者在網(wǎng)上被噴,你一怒之下刪帖,停止更新,你就看不到這些好內容了。雖然這是小概率事件(還沒(méi)有發(fā)生),但你可以準備下雨天。您可以將關(guān)注的專(zhuān)欄導出到電子書(shū),這樣您就可以離線(xiàn)閱讀,而不必擔心不小心刪除帖子。
  只需要工具和源碼的可以拉到文章底部獲取代碼。
  【最終效果】
  運行程序,輸入列的id,即網(wǎng)頁(yè)地址上的路徑:
  
  
  之后,程序會(huì )自動(dòng)抓取欄目?jì)鹊奈恼?,并根據發(fā)表時(shí)間合并導出為pdf文件。
  
  【實(shí)現思路】
  本方案主要分為三部分:
  爬取專(zhuān)欄文章地址列表 爬取每篇文章的詳細內容導出PDF 1. 爬取列表
  上一篇爬蟲(chóng)必備工具,掌握了它就可以解決介紹如何分析網(wǎng)頁(yè)請求的一半問(wèn)題。根據方法,我們可以使用開(kāi)發(fā)者工具的Network功能,找出欄目頁(yè)面的請求,獲取明細列表:
  
https://www.zhihu.com/api/v4/c ... icles
  
  觀(guān)察返回的結果,我們發(fā)現通過(guò)next和is_end的值,可以得到下一個(gè)列表請求的地址(相當于頁(yè)面向下滾動(dòng)的觸發(fā)效果),判斷是否拿到了所有的文章。
  data中的id、title、url就是我們需要的數據。因為url可以用id拼寫(xiě)出來(lái),所以沒(méi)有保存在我們的代碼中。
  
  使用 while 循環(huán)直到所有文章的 id 和標題都被提取并保存在文件中。
  
while True:
resp = requests.get(url, headers=headers)
j = resp.json()
data = j[&#39;data&#39;]
for article in data:
# 保存id和title(略)
if j[&#39;paging&#39;][&#39;is_end&#39;]:
break
url = j[&#39;paging&#39;][&#39;next&#39;]
# 按 id 排序(略)
# 導入文件(略)
  
  2. 獲取文章
  有了所有文章的id/url,后面的爬取就很簡(jiǎn)單了。文章的主要內容在 Post-RichText 標簽中。
  處理一些文字需要一點(diǎn)功夫,比如原頁(yè)面的圖片效果,會(huì )添加noscript標簽和`,highlight"&gt;
  
url = &#39;https://zhuanlan.zhihu.com/p/&#39; + id
html = requests.get(url, headers=headers).text
soup = BeautifulSoup(html, &#39;lxml&#39;)
content = soup.find(class_=&#39;Post-RichText&#39;).prettify()
# 對content做處理(略)
with open(file_name, &#39;w&#39;) as f:
f.write(content)
  
  到這一步,所有的內容都已經(jīng)抓取完畢,可以在本地讀取了。
  3. 導出 PDF
  為了方便閱讀,我們使用 wkhtmltopdf + pdfkit 將這些 HTML 文件打包成 PDF。
  wkhtmltopdf是一個(gè)將HTML轉為PDF的工具,需要單獨安裝。詳情請參閱其官方網(wǎng)站。
  pdfkit 是為此工具打包的 Python 庫,可以從 pip 安裝:
  
pip install pdfkit
  使用起來(lái)非常簡(jiǎn)單:
  
# 獲取htmls文件名列表(略)
pdfkit.from_file(sorted(htmls), &#39;zhihu.pdf&#39;)
  
  這樣就完成了整列的導出。
  不僅是知乎專(zhuān)欄,幾乎大部分的資訊網(wǎng)站都是通過(guò)1.抓取列表和2.抓取詳細內容這兩個(gè)步驟來(lái)采集
數據的。所以這個(gè)代碼只要稍加修改就可以在許多其他網(wǎng)站上使用。只是有些網(wǎng)站需要登錄后才能訪(fǎng)問(wèn),所以需要在headers中設置cookie信息。另外,不同網(wǎng)站的請求接口、參數、限制都不一樣,所以具體問(wèn)題還是要具體問(wèn)題具體分析。
  這些爬蟲(chóng)的開(kāi)發(fā)技巧可以在我們的爬蟲(chóng)實(shí)戰課中學(xué)習。需要的請回復公眾號中的實(shí)際爬蟲(chóng)
  【源碼下載】
  獲取知乎專(zhuān)欄下載器源碼請在公眾號回復知乎關(guān)鍵詞(Crossin的編程課堂)
  除了代碼,還有本專(zhuān)欄打包好的PDF,歡迎閱讀分享。
 ?。剑剑剑?br />   其他文章和答案:
  歡迎搜索關(guān)注:Crossin的編程課堂
   查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(通過(guò)Python和爬蟲(chóng),可以完成怎樣的小工具?|知乎
)
  總是有同學(xué)問(wèn)我在學(xué)習了Python基礎知識后是否不知道我可以做些什么來(lái)改進(jìn)。今天我就用一個(gè)小例子來(lái)告訴大家通過(guò)Python和爬蟲(chóng)可以完成什么樣的小工具。
  在知乎上,你一定關(guān)注過(guò)一些不錯的專(zhuān)欄(比如Crossin的編程課堂)。但如果有一天,你最喜歡的受訪(fǎng)者在網(wǎng)上被噴,你一怒之下刪帖,停止更新,你就看不到這些好內容了。雖然這是小概率事件(還沒(méi)有發(fā)生),但你可以準備下雨天。您可以將關(guān)注的專(zhuān)欄導出到電子書(shū),這樣您就可以離線(xiàn)閱讀,而不必擔心不小心刪除帖子。
  只需要工具和源碼的可以拉到文章底部獲取代碼。
  【最終效果】
  運行程序,輸入列的id,即網(wǎng)頁(yè)地址上的路徑:
  
  
  之后,程序會(huì )自動(dòng)抓取欄目?jì)鹊奈恼?,并根據發(fā)表時(shí)間合并導出為pdf文件。
  
  【實(shí)現思路】
  本方案主要分為三部分:
  爬取專(zhuān)欄文章地址列表 爬取每篇文章的詳細內容導出PDF 1. 爬取列表
  上一篇爬蟲(chóng)必備工具,掌握了它就可以解決介紹如何分析網(wǎng)頁(yè)請求的一半問(wèn)題。根據方法,我們可以使用開(kāi)發(fā)者工具的Network功能,找出欄目頁(yè)面的請求,獲取明細列表:
  
https://www.zhihu.com/api/v4/c ... icles
  
  觀(guān)察返回的結果,我們發(fā)現通過(guò)next和is_end的值,可以得到下一個(gè)列表請求的地址(相當于頁(yè)面向下滾動(dòng)的觸發(fā)效果),判斷是否拿到了所有的文章。
  data中的id、title、url就是我們需要的數據。因為url可以用id拼寫(xiě)出來(lái),所以沒(méi)有保存在我們的代碼中。
  
  使用 while 循環(huán)直到所有文章的 id 和標題都被提取并保存在文件中。
  
while True:
resp = requests.get(url, headers=headers)
j = resp.json()
data = j[&#39;data&#39;]
for article in data:
# 保存id和title(略)
if j[&#39;paging&#39;][&#39;is_end&#39;]:
break
url = j[&#39;paging&#39;][&#39;next&#39;]
# 按 id 排序(略)
# 導入文件(略)
  
  2. 獲取文章
  有了所有文章的id/url,后面的爬取就很簡(jiǎn)單了。文章的主要內容在 Post-RichText 標簽中。
  處理一些文字需要一點(diǎn)功夫,比如原頁(yè)面的圖片效果,會(huì )添加noscript標簽和`,highlight"&gt;
  
url = &#39;https://zhuanlan.zhihu.com/p/&#39; + id
html = requests.get(url, headers=headers).text
soup = BeautifulSoup(html, &#39;lxml&#39;)
content = soup.find(class_=&#39;Post-RichText&#39;).prettify()
# 對content做處理(略)
with open(file_name, &#39;w&#39;) as f:
f.write(content)
  
  到這一步,所有的內容都已經(jīng)抓取完畢,可以在本地讀取了。
  3. 導出 PDF
  為了方便閱讀,我們使用 wkhtmltopdf + pdfkit 將這些 HTML 文件打包成 PDF。
  wkhtmltopdf是一個(gè)將HTML轉為PDF的工具,需要單獨安裝。詳情請參閱其官方網(wǎng)站。
  pdfkit 是為此工具打包的 Python 庫,可以從 pip 安裝:
  
pip install pdfkit
  使用起來(lái)非常簡(jiǎn)單:
  
# 獲取htmls文件名列表(略)
pdfkit.from_file(sorted(htmls), &#39;zhihu.pdf&#39;)
  
  這樣就完成了整列的導出。
  不僅是知乎專(zhuān)欄,幾乎大部分的資訊網(wǎng)站都是通過(guò)1.抓取列表和2.抓取詳細內容這兩個(gè)步驟來(lái)采集
數據的。所以這個(gè)代碼只要稍加修改就可以在許多其他網(wǎng)站上使用。只是有些網(wǎng)站需要登錄后才能訪(fǎng)問(wèn),所以需要在headers中設置cookie信息。另外,不同網(wǎng)站的請求接口、參數、限制都不一樣,所以具體問(wèn)題還是要具體問(wèn)題具體分析。
  這些爬蟲(chóng)的開(kāi)發(fā)技巧可以在我們的爬蟲(chóng)實(shí)戰課中學(xué)習。需要的請回復公眾號中的實(shí)際爬蟲(chóng)
  【源碼下載】
  獲取知乎專(zhuān)欄下載器源碼請在公眾號回復知乎關(guān)鍵詞(Crossin的編程課堂)
  除了代碼,還有本專(zhuān)欄打包好的PDF,歡迎閱讀分享。
 ?。剑剑剑?br />   其他文章和答案:
  歡迎搜索關(guān)注:Crossin的編程課堂
  

抓取網(wǎng)頁(yè)生成電子書(shū)(主流電子書(shū)格式大家最為熟知的電子書(shū)熟知格式(圖))

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2021-12-27 08:10 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(主流電子書(shū)格式大家最為熟知的電子書(shū)熟知格式(圖))
  編者按(@Minja):在寫(xiě)文章的時(shí)候,我們經(jīng)常需要引用和返回。對各種存檔和編輯工具的不滿(mǎn),讓我萌生了自己制作電子書(shū)的念頭。恰巧@Spencerwoo在這方面有扎實(shí)的折騰能力,于是擺脫了他,一起研究了一套簡(jiǎn)單易行的方法,寫(xiě)了一篇文章與大家分享。
  網(wǎng)絡(luò )世界雖然有很多有價(jià)值的文章,但并不是每一次閱讀體驗都令人滿(mǎn)意。如果您想擁有出色的文章閱讀體驗,您至少必須確保我們正在閱讀的文章:
  很多時(shí)候,我們依靠瀏覽器的閱讀方式,或者Pocket和RSS客戶(hù)端來(lái)閱讀。但是,稍后無(wú)法對閱讀模式進(jìn)行排序。大多數閱讀服務(wù)的全文搜索功能需要付費,網(wǎng)上的文章可能有一天找不到了。也許,將文章以電子書(shū)的形式保存在本地是一種更方便的回溯選擇。
  如果我們在網(wǎng)上看到一個(gè)網(wǎng)頁(yè)形式的電子書(shū),想把整個(gè)網(wǎng)頁(yè)直接保存在本地(俗稱(chēng)“剪輯”),那會(huì )很麻煩?,F有的網(wǎng)絡(luò )剪輯工具不僅可能夾帶無(wú)用的廣告和其他影響體驗的冗余區域,還可能丟失重要和有價(jià)值的內容。不僅如此,幾乎沒(méi)有任何工具可以輕松抓取圖片并自定義本地保存的文章樣式。那么,讓我向您介紹一套免費制作個(gè)性化電子書(shū)的方法。
  本文主要使用開(kāi)源工具Pandoc。對于需要MOBI或PDF格式電子書(shū)的讀者,文章后半部分也有簡(jiǎn)單的轉換方法。
  以ePub電子書(shū)為突破口
  主流的電子書(shū)格式有很多,但本文主要推薦ePub,它相對開(kāi)放通用,可以方便地轉換為其他格式。
  
  主流電子書(shū)格式
  或許最著(zhù)名的電子書(shū)格式是純文本TXT格式,但TXT之所以被稱(chēng)為“純文本”,是因為它不支持章節、圖片、封面和超鏈接。為了讓電子書(shū)有格式、有圖片、有內容,目前常見(jiàn)的電子書(shū)通常有PDF、ePub、MOBI三種格式。在:
  我們這篇文章的主要目的是利用接下來(lái)要介紹的工具,制作一個(gè)清晰美觀(guān)的電子書(shū),內嵌圖片、目錄、美圖。相對而言,ePub 更加靈活,目錄和自定義布局一應俱全,另外兩種格式轉換也方便。本文將從它開(kāi)始。
  
  電子書(shū)效果制作
  [……] 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(主流電子書(shū)格式大家最為熟知的電子書(shū)熟知格式(圖))
  編者按(@Minja):在寫(xiě)文章的時(shí)候,我們經(jīng)常需要引用和返回。對各種存檔和編輯工具的不滿(mǎn),讓我萌生了自己制作電子書(shū)的念頭。恰巧@Spencerwoo在這方面有扎實(shí)的折騰能力,于是擺脫了他,一起研究了一套簡(jiǎn)單易行的方法,寫(xiě)了一篇文章與大家分享。
  網(wǎng)絡(luò )世界雖然有很多有價(jià)值的文章,但并不是每一次閱讀體驗都令人滿(mǎn)意。如果您想擁有出色的文章閱讀體驗,您至少必須確保我們正在閱讀的文章:
  很多時(shí)候,我們依靠瀏覽器的閱讀方式,或者Pocket和RSS客戶(hù)端來(lái)閱讀。但是,稍后無(wú)法對閱讀模式進(jìn)行排序。大多數閱讀服務(wù)的全文搜索功能需要付費,網(wǎng)上的文章可能有一天找不到了。也許,將文章以電子書(shū)的形式保存在本地是一種更方便的回溯選擇。
  如果我們在網(wǎng)上看到一個(gè)網(wǎng)頁(yè)形式的電子書(shū),想把整個(gè)網(wǎng)頁(yè)直接保存在本地(俗稱(chēng)“剪輯”),那會(huì )很麻煩?,F有的網(wǎng)絡(luò )剪輯工具不僅可能夾帶無(wú)用的廣告和其他影響體驗的冗余區域,還可能丟失重要和有價(jià)值的內容。不僅如此,幾乎沒(méi)有任何工具可以輕松抓取圖片并自定義本地保存的文章樣式。那么,讓我向您介紹一套免費制作個(gè)性化電子書(shū)的方法。
  本文主要使用開(kāi)源工具Pandoc。對于需要MOBI或PDF格式電子書(shū)的讀者,文章后半部分也有簡(jiǎn)單的轉換方法。
  以ePub電子書(shū)為突破口
  主流的電子書(shū)格式有很多,但本文主要推薦ePub,它相對開(kāi)放通用,可以方便地轉換為其他格式。
  
  主流電子書(shū)格式
  或許最著(zhù)名的電子書(shū)格式是純文本TXT格式,但TXT之所以被稱(chēng)為“純文本”,是因為它不支持章節、圖片、封面和超鏈接。為了讓電子書(shū)有格式、有圖片、有內容,目前常見(jiàn)的電子書(shū)通常有PDF、ePub、MOBI三種格式。在:
  我們這篇文章的主要目的是利用接下來(lái)要介紹的工具,制作一個(gè)清晰美觀(guān)的電子書(shū),內嵌圖片、目錄、美圖。相對而言,ePub 更加靈活,目錄和自定義布局一應俱全,另外兩種格式轉換也方便。本文將從它開(kāi)始。
  
  電子書(shū)效果制作
  [……]

抓取網(wǎng)頁(yè)生成電子書(shū)(廖雪峰的Python教程爬下來(lái)做成PDF電子書(shū)方便大家離線(xiàn)閱讀)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 89 次瀏覽 ? 2021-12-25 00:05 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(廖雪峰的Python教程爬下來(lái)做成PDF電子書(shū)方便大家離線(xiàn)閱讀)
  寫(xiě)爬蟲(chóng)似乎并不比使用Python更合適。Python社區提供的爬蟲(chóng)工具讓你眼花繚亂。各種可以直接使用的庫,分分鐘寫(xiě)一個(gè)爬蟲(chóng)。今天想寫(xiě)一個(gè)爬蟲(chóng)。, 爬下廖雪峰的Python教程,做成PDF電子書(shū)供離線(xiàn)閱讀。
  在開(kāi)始寫(xiě)爬蟲(chóng)之前,我們先來(lái)分析一下網(wǎng)站1的頁(yè)面結構。頁(yè)面左側為教程目錄大綱。每個(gè)URL對應右邊文章的一篇文章,右上角是文章的標題,中間是文章的正文部分。正文內容是我們關(guān)注的重點(diǎn)。我們要抓取的數據是所有網(wǎng)頁(yè)的正文部分。下面是用戶(hù)的評論區。評論區對我們來(lái)說(shuō)沒(méi)用,可以無(wú)視。
  
  工具準備
  搞清楚網(wǎng)站的基本結構后,就可以開(kāi)始準備爬蟲(chóng)所依賴(lài)的工具包了。requests和beautifulsoup是爬蟲(chóng)的兩大神器,reuqests用于網(wǎng)絡(luò )請求,beautifulsoup用于操作html數據。有了這兩個(gè)班車(chē),我們就可以順利工作了。我們不需要像scrapy這樣的爬蟲(chóng)框架。小程序有點(diǎn)大錘。另外,既然是把html文件轉成pdf,就得有相應的庫支持。wkhtmltopdf 是一個(gè)非常好的工具。它可用于從 html 到 pdf 的多平臺轉換。pdfkit 是 wkhtmltopdf 的 Python 包。先安裝以下依賴(lài)包,然后安裝wkhtmltopdf
  pip install requests
pip install beautifulsoup
pip install pdfkit
  安裝 wkhtmltopdf
  Windows平臺直接從wkhtmltopdf官網(wǎng)下載穩定版2進(jìn)行安裝。安裝完成后,將程序的執行路徑添加到系統環(huán)境$PATH變量中,否則pdfkit找不到wkhtmltopdf并出現“No wkhtmltopdf executable found”的錯誤提示。Ubuntu 和 CentOS 可以直接從命令行安裝
  $ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf # centos
  爬蟲(chóng)實(shí)現
  一切準備就緒后,就可以開(kāi)始編寫(xiě)代碼了,但是在編寫(xiě)代碼之前,我們先來(lái)梳理一下您的想法。該程序的目的是將URL對應的所有html body部分保存到本地,然后使用pdfkit將這些文件轉換成pdf文件。讓我們拆分任務(wù)。首先將某個(gè)URL對應的html body保存到本地,然后找到所有的URL進(jìn)行同樣的操作。
  使用Chrome瀏覽器找到頁(yè)面body部分的標簽,按F12找到body對應的div標簽:
  ,div是網(wǎng)頁(yè)的正文內容。使用requests在本地加載整個(gè)頁(yè)面后,可以使用beautifulsoup操作HTML的dom元素來(lái)提取body內容。
  
  具體實(shí)現代碼如下: 使用soup.find_all函數查找body標簽,然后將body部分的內容保存在a.html文件中。
  def parse_url_to_html(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, "html5lib")
body = soup.find_all(class_="x-wiki-content")[0]
html = str(body)
with open("a.html", &#39;wb&#39;) as f:
f.write(html)
  第二步是解析出頁(yè)面左側的所有URL。同樣的方法,找到左邊的菜單標簽 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(廖雪峰的Python教程爬下來(lái)做成PDF電子書(shū)方便大家離線(xiàn)閱讀)
  寫(xiě)爬蟲(chóng)似乎并不比使用Python更合適。Python社區提供的爬蟲(chóng)工具讓你眼花繚亂。各種可以直接使用的庫,分分鐘寫(xiě)一個(gè)爬蟲(chóng)。今天想寫(xiě)一個(gè)爬蟲(chóng)。, 爬下廖雪峰的Python教程,做成PDF電子書(shū)供離線(xiàn)閱讀。
  在開(kāi)始寫(xiě)爬蟲(chóng)之前,我們先來(lái)分析一下網(wǎng)站1的頁(yè)面結構。頁(yè)面左側為教程目錄大綱。每個(gè)URL對應右邊文章的一篇文章,右上角是文章的標題,中間是文章的正文部分。正文內容是我們關(guān)注的重點(diǎn)。我們要抓取的數據是所有網(wǎng)頁(yè)的正文部分。下面是用戶(hù)的評論區。評論區對我們來(lái)說(shuō)沒(méi)用,可以無(wú)視。
  
  工具準備
  搞清楚網(wǎng)站的基本結構后,就可以開(kāi)始準備爬蟲(chóng)所依賴(lài)的工具包了。requests和beautifulsoup是爬蟲(chóng)的兩大神器,reuqests用于網(wǎng)絡(luò )請求,beautifulsoup用于操作html數據。有了這兩個(gè)班車(chē),我們就可以順利工作了。我們不需要像scrapy這樣的爬蟲(chóng)框架。小程序有點(diǎn)大錘。另外,既然是把html文件轉成pdf,就得有相應的庫支持。wkhtmltopdf 是一個(gè)非常好的工具。它可用于從 html 到 pdf 的多平臺轉換。pdfkit 是 wkhtmltopdf 的 Python 包。先安裝以下依賴(lài)包,然后安裝wkhtmltopdf
  pip install requests
pip install beautifulsoup
pip install pdfkit
  安裝 wkhtmltopdf
  Windows平臺直接從wkhtmltopdf官網(wǎng)下載穩定版2進(jìn)行安裝。安裝完成后,將程序的執行路徑添加到系統環(huán)境$PATH變量中,否則pdfkit找不到wkhtmltopdf并出現“No wkhtmltopdf executable found”的錯誤提示。Ubuntu 和 CentOS 可以直接從命令行安裝
  $ sudo apt-get install wkhtmltopdf # ubuntu
$ sudo yum intsall wkhtmltopdf # centos
  爬蟲(chóng)實(shí)現
  一切準備就緒后,就可以開(kāi)始編寫(xiě)代碼了,但是在編寫(xiě)代碼之前,我們先來(lái)梳理一下您的想法。該程序的目的是將URL對應的所有html body部分保存到本地,然后使用pdfkit將這些文件轉換成pdf文件。讓我們拆分任務(wù)。首先將某個(gè)URL對應的html body保存到本地,然后找到所有的URL進(jìn)行同樣的操作。
  使用Chrome瀏覽器找到頁(yè)面body部分的標簽,按F12找到body對應的div標簽:
  ,div是網(wǎng)頁(yè)的正文內容。使用requests在本地加載整個(gè)頁(yè)面后,可以使用beautifulsoup操作HTML的dom元素來(lái)提取body內容。
  
  具體實(shí)現代碼如下: 使用soup.find_all函數查找body標簽,然后將body部分的內容保存在a.html文件中。
  def parse_url_to_html(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, "html5lib")
body = soup.find_all(class_="x-wiki-content")[0]
html = str(body)
with open("a.html", &#39;wb&#39;) as f:
f.write(html)
  第二步是解析出頁(yè)面左側的所有URL。同樣的方法,找到左邊的菜單標簽

抓取網(wǎng)頁(yè)生成電子書(shū)(制作一個(gè)最新文章列表減少蜘蛛爬行的步驟【模板】)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2021-12-25 00:04 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(制作一個(gè)最新文章列表減少蜘蛛爬行的步驟【模板】)
  最近在研究垃圾站采集和搜索引擎收錄的關(guān)系。因為一天的采集數量很多,雖然首頁(yè)有的地方調用了最新的文章,但是調用的數據只有幾條,遠不是成百上千的采集 每天的內容。
  由于采集返回的內容太多,專(zhuān)欄的列表頁(yè)每天會(huì )增加幾頁(yè)。如果蜘蛛逐頁(yè)爬行,會(huì )增加訪(fǎng)問(wèn)目標頁(yè)面的難度,因此萌發(fā)了制作一個(gè)最新的文章列表,減少了蜘蛛爬行的步驟。通過(guò)首頁(yè),訪(fǎng)問(wèn)最新的文章列表頁(yè)面,然后可以到最后的文章頁(yè)面,應該有利于搜索引擎爬取和收錄,在性質(zhì)為 xml 映射,但這只是 HTML 頁(yè)面。
  演示地址:
  修改方法:
  1、下載壓縮包,解壓后上傳到根目錄。
  2、進(jìn)入網(wǎng)站后臺核心-&gt;通道模型-&gt;添加單頁(yè)文檔管理頁(yè)面。
  3、頁(yè)面標題、頁(yè)面關(guān)鍵詞和頁(yè)面摘要信息根據自己網(wǎng)站的情況填寫(xiě),模板名和文件名參考下圖,編輯中無(wú)需添加任何內容框,我已經(jīng)在模板中給你設置好了。
  <IMG class="size-full wp-image-1171 aligncenter" title=增加新頁(yè)面 alt="" src="http://image39.360doc.com/Down ... ot%3B width=500 height=344>
  4、設置好后點(diǎn)擊確定,會(huì )在網(wǎng)站的根目錄下生成一個(gè)sitemap.html頁(yè)面。生成頁(yè)面的名稱(chēng)和位置可以在文件名中自定義。
  5、還沒(méi)有自動(dòng)更新。下次加一些代碼實(shí)現自動(dòng)更新?,F在需要進(jìn)入單頁(yè)文檔管理手動(dòng)更新。
  您可以根據需要編輯模板文件中的代碼以更改數據條目和行數。
  {dede:arclist row='50' col='1' orderby=pubdate}
  [字段:標題/]
  {/dede:arclist}
  您還可以創(chuàng )建一個(gè)沒(méi)有圖片的簡(jiǎn)單導航頁(yè)面。
  在模板的底部,有一個(gè)織夢(mèng) 管理員主頁(yè)的鏈接。如果您認為鏈接的存在會(huì )對您產(chǎn)生影響,您可以隨意刪除。如果你覺(jué)得這個(gè)方法對你有幫助,希望你能留下鏈接。也是對我最大的支持,謝謝。
  如果您遇到任何問(wèn)題,您可以給我留言。 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(制作一個(gè)最新文章列表減少蜘蛛爬行的步驟【模板】)
  最近在研究垃圾站采集和搜索引擎收錄的關(guān)系。因為一天的采集數量很多,雖然首頁(yè)有的地方調用了最新的文章,但是調用的數據只有幾條,遠不是成百上千的采集 每天的內容。
  由于采集返回的內容太多,專(zhuān)欄的列表頁(yè)每天會(huì )增加幾頁(yè)。如果蜘蛛逐頁(yè)爬行,會(huì )增加訪(fǎng)問(wèn)目標頁(yè)面的難度,因此萌發(fā)了制作一個(gè)最新的文章列表,減少了蜘蛛爬行的步驟。通過(guò)首頁(yè),訪(fǎng)問(wèn)最新的文章列表頁(yè)面,然后可以到最后的文章頁(yè)面,應該有利于搜索引擎爬取和收錄,在性質(zhì)為 xml 映射,但這只是 HTML 頁(yè)面。
  演示地址:
  修改方法:
  1、下載壓縮包,解壓后上傳到根目錄。
  2、進(jìn)入網(wǎng)站后臺核心-&gt;通道模型-&gt;添加單頁(yè)文檔管理頁(yè)面。
  3、頁(yè)面標題、頁(yè)面關(guān)鍵詞和頁(yè)面摘要信息根據自己網(wǎng)站的情況填寫(xiě),模板名和文件名參考下圖,編輯中無(wú)需添加任何內容框,我已經(jīng)在模板中給你設置好了。
  <IMG class="size-full wp-image-1171 aligncenter" title=增加新頁(yè)面 alt="" src="http://image39.360doc.com/Down ... ot%3B width=500 height=344>
  4、設置好后點(diǎn)擊確定,會(huì )在網(wǎng)站的根目錄下生成一個(gè)sitemap.html頁(yè)面。生成頁(yè)面的名稱(chēng)和位置可以在文件名中自定義。
  5、還沒(méi)有自動(dòng)更新。下次加一些代碼實(shí)現自動(dòng)更新?,F在需要進(jìn)入單頁(yè)文檔管理手動(dòng)更新。
  您可以根據需要編輯模板文件中的代碼以更改數據條目和行數。
  {dede:arclist row='50' col='1' orderby=pubdate}
  [字段:標題/]
  {/dede:arclist}
  您還可以創(chuàng )建一個(gè)沒(méi)有圖片的簡(jiǎn)單導航頁(yè)面。
  在模板的底部,有一個(gè)織夢(mèng) 管理員主頁(yè)的鏈接。如果您認為鏈接的存在會(huì )對您產(chǎn)生影響,您可以隨意刪除。如果你覺(jué)得這個(gè)方法對你有幫助,希望你能留下鏈接。也是對我最大的支持,謝謝。
  如果您遇到任何問(wèn)題,您可以給我留言。

抓取網(wǎng)頁(yè)生成電子書(shū)(calibre-E-bookmanagement怎么做代碼Git教程)

網(wǎng)站優(yōu)化 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 107 次瀏覽 ? 2021-12-25 00:03 ? 來(lái)自相關(guān)話(huà)題

  抓取網(wǎng)頁(yè)生成電子書(shū)(calibre-E-bookmanagement怎么做代碼Git教程)
  calibre-電子書(shū)管理是一款非常強大的電子書(shū)管理軟件。它可以打開(kāi)和轉換各種格式的電子書(shū),抓取新聞到本地閱讀,并允許用戶(hù)自定義新聞來(lái)源。抓取網(wǎng)頁(yè)內容并生成電子書(shū)。利用這個(gè)功能,我制作了廖雪峰老師的Python教程和Git教程的epub電子書(shū)。使用firefox的epubReader插件,可以在電腦上打開(kāi)閱讀。您也可以在 Internet 上閱讀。這種體驗非常適合沒(méi)有互聯(lián)網(wǎng)但想學(xué)習的學(xué)生。
  食譜是用python編寫(xiě)的。用學(xué)過(guò)的python獲取學(xué)習資源,加強實(shí)踐。操作方法非常簡(jiǎn)單。下載calibre-電子書(shū)管理就知道了。Calibre 還提供了用于配方準備的 api 文檔。
  下面是獲取python教程的配方代碼
  #!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
class liaoxuefeng_python(BasicNewsRecipe):
title = '廖雪峰Python教程'
description = 'python教程'
max_articles_per_feed = 200
url_prefix = 'http://www.liaoxuefeng.com'
no_stylesheets = True
keep_only_tags = [{ 'id': 'main' }]
remove_tags=[{'class':'x-wiki-info'}]
remove_tags_after=[{'class':'x-wiki-content x-content'}]

def get_title(self, link):
return link.contents[0].strip()

def parse_index(self):
soup = self.index_to_soup('http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000')

div = soup.find('div', { 'class': 'x-wiki-tree' })

articles = []
for link in div.findAll('a'):
til = self.get_title(link)
url = self.url_prefix + link['href']
a = { 'title': til, 'url': url }

articles.append(a)

tutorial = [('廖雪峰python教程', articles)]

return tutorial
  抓取Git教程只需要將parse_index方法中python教程的鏈接改成Git教程的鏈接即可。成品在本教程中 查看全部

  抓取網(wǎng)頁(yè)生成電子書(shū)(calibre-E-bookmanagement怎么做代碼Git教程)
  calibre-電子書(shū)管理是一款非常強大的電子書(shū)管理軟件。它可以打開(kāi)和轉換各種格式的電子書(shū),抓取新聞到本地閱讀,并允許用戶(hù)自定義新聞來(lái)源。抓取網(wǎng)頁(yè)內容并生成電子書(shū)。利用這個(gè)功能,我制作了廖雪峰老師的Python教程和Git教程的epub電子書(shū)。使用firefox的epubReader插件,可以在電腦上打開(kāi)閱讀。您也可以在 Internet 上閱讀。這種體驗非常適合沒(méi)有互聯(lián)網(wǎng)但想學(xué)習的學(xué)生。
  食譜是用python編寫(xiě)的。用學(xué)過(guò)的python獲取學(xué)習資源,加強實(shí)踐。操作方法非常簡(jiǎn)單。下載calibre-電子書(shū)管理就知道了。Calibre 還提供了用于配方準備的 api 文檔。
  下面是獲取python教程的配方代碼
  #!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals, division, absolute_import, print_function
from calibre.web.feeds.news import BasicNewsRecipe
class liaoxuefeng_python(BasicNewsRecipe):
title = '廖雪峰Python教程'
description = 'python教程'
max_articles_per_feed = 200
url_prefix = 'http://www.liaoxuefeng.com'
no_stylesheets = True
keep_only_tags = [{ 'id': 'main' }]
remove_tags=[{'class':'x-wiki-info'}]
remove_tags_after=[{'class':'x-wiki-content x-content'}]

def get_title(self, link):
return link.contents[0].strip()

def parse_index(self):
soup = self.index_to_soup('http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000')

div = soup.find('div', { 'class': 'x-wiki-tree' })

articles = []
for link in div.findAll('a'):
til = self.get_title(link)
url = self.url_prefix + link['href']
a = { 'title': til, 'url': url }

articles.append(a)

tutorial = [('廖雪峰python教程', articles)]

return tutorial
  抓取Git教程只需要將parse_index方法中python教程的鏈接改成Git教程的鏈接即可。成品在本教程中

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久