Python寫網絡爬蟲,中文高清PDF資源,需要的可以私我 :)
作為一種便捷地收集網上信息并從中抽取出可用信息的方式,網絡爬蟲技術變得越來越有用。使用Python這樣的簡單編程語言,你可以使用少量編程技能就可以爬取復雜的網站。
《用Python寫網絡爬蟲》作為使用Python來爬取網絡數據的杰出指南,講解了從靜態頁面爬取數據的方法以及使用緩存來管理服務器負載的方法。此外,本書還介紹了如何使用AJAX URL和Firebug擴展來爬取數據,以及有關爬取技術的更多真相,比如使用瀏覽器渲染、管理cookie、通過提交表單從受驗證碼保護的復雜網站中抽取數據等。本書使用Scrapy創建了一個高級網絡爬蟲,并對一些真實的網站進行了爬取。
《用Python寫網絡爬蟲》介紹了如下內容:
通過跟蹤鏈接來爬取網站;
使用lxml從頁面中抽取數據;
構建線程爬蟲來并行爬取頁面;
將下載的內容進行緩存,以降低帶寬消耗;
解析依賴于JavaScript的網站;
與表單和會話進行交互;
解決受保護頁面的驗證碼問題;
對AJAX調用進行逆向工程;
使用Scrapy創建高級爬蟲。
本書讀者對象
本書是為想要構建可靠的數據爬取解決方案的開發人員寫作的,本書假定讀者具有一定的Python編程經驗。當然,具備其他編程語言開發經驗的讀者也可以閱讀本書,并理解書中涉及的概念和原理。
Richard Lawson來自澳大利亞,畢業于墨爾本大學計算機科學專業。畢業后,他創辦了一家專注于網絡爬蟲的公司,為超過50個國家的業務提供遠程工作。他精通于世界語,可以使用漢語和韓語對話,并且積極投身于開源軟件。他目前在牛津大學攻讀研究生學位,并利用業余時間研發自主無人機。
第1章 網絡爬蟲簡介 1
1.1 網絡爬蟲何時有用 1
1.2 網絡爬蟲是否合法 2
1.3 背景調研 3
1.3.1 檢查robots.txt 3
1.3.2 檢查網站地圖 4
1.3.3 估算網站大小 5
1.3.4 識別網站所用技術 7
1.3.5 尋找網站所有者 7
1.4 編寫第一個網絡爬蟲 8
1.4.1 下載網頁 9
1.4.2 網站地圖爬蟲 12
1.4.3 ID遍歷爬蟲 13
1.4.4 鏈接爬蟲 15
1.5 本章小結 22
第2章 數據抓取 23
2.1 分析網頁 23
2.2 三種網頁抓取方法 26
2.2.1 正則表達式 26
2.2.2 Beautiful Soup 28
2.2.3 Lxml 30
2.2.4 性能對比 32
2.2.5 結論 35
2.2.6 為鏈接爬蟲添加抓取回調 35
2.3 本章小結 38
第3章 下載緩存 39
3.1 為鏈接爬蟲添加緩存支持 39
3.2 磁盤緩存 42
3.2.1 實現 44
3.2.2 緩存測試 46
3.2.3 節省磁盤空間 46
3.2.4 清理過期數據 47
3.2.5 缺點 48
3.3 數據庫緩存 49
3.3.1 NoSQL是什么 50
3.3.2 安裝MongoDB 50
3.3.3 MongoDB概述 50
3.3.4 MongoDB緩存實現 52
3.3.5 壓縮 54
3.3.6 緩存測試 54
3.4 本章小結 55
第4章 并發下載 57
4.1 100萬個網頁 57
4.2 串行爬蟲 60
4.3 多線程爬蟲 60
4.3.1 線程和進程如何工作 61
4.3.2 實現 61
4.3.3 多進程爬蟲 63
4.4 性能 67
4.5 本章小結 68
第5章 動態內容 69
5.1 動態網頁示例 69
5.2 對動態網頁進行逆向工程 72
5.3 渲染動態網頁 77
5.3.1 PyQt還是PySide 78
5.3.2 執行JavaScript 78
5.3.3 使用WebKit與網站交互 80
5.3.4 Selenium 85
5.4 本章小結 88
第6章 表單交互 89
6.1 登錄表單 90
6.2 支持內容更新的登錄腳本擴展 97
6.3 使用Mechanize模塊實現自動化表單處理 100
6.4 本章小結 102
第7章 驗證碼處理 103
7.1 注冊賬號 103
7.2 光學字符識別 106
7.3 處理復雜驗證碼 111
7.3.1 使用驗證碼處理服務 112
7.3.2 9kw入門 112
7.3.3 與注冊功能集成 119
7.4 本章小結 120
第8章 Scrapy 121
8.1 安裝 121
8.2 啟動項目 122
8.2.1 定義模型 123
8.2.2 創建爬蟲 124
8.2.3 使用shell命令抓取 128
8.2.4 檢查結果 129
8.2.5 中斷與恢復爬蟲 132
8.3 使用Portia編寫可視化爬蟲 133
8.3.1 安裝 133
8.3.2 標注 136
8.3.3 優化爬蟲 138
8.3.4 檢查結果 140
8.4 使用Scrapely實現自動化抓取 141
8.5 本章小結 142
第9章 總結 143
9.1 Google搜索引擎 143
9.2 Facebook 148
9.2.1 網站 148
9.2.2 API 150
9.3 Gap 151
9.4 寶馬 153
9.5 本章小結 157
用Python寫網絡爬蟲,中文高清PDF資源,需要的可以私我 :)
自:CSDN,作者:不正經的kimol君
鏈接:https://blog.csdn.net/kimol_justdo/article/details/109267805
前言
一、思路分析
https://app.xunjiepdf.com
私信小編01即可獲取大量Python學習資料
導入相關庫:
import time
import requests
定義PDF2Word類:
class PDF2Word():
def __init__(self):
self.machineid = 'ccc052ee5200088b92342303c4ea9399'
self.token = ''
self.guid = ''
self.keytag = ''
def produceToken(self):
url = 'https://app.xunjiepdf.com/api/producetoken'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Origin': 'https://app.xunjiepdf.com',
'Connection': 'keep-alive',
'Referer': 'https://app.xunjiepdf.com/pdf2word/',}
data = {'machineid':self.machineid}
res = requests.post(url,headers=headers,data=data)
res_json = res.json()
if res_json['code'] == 10000:
self.token = res_json['token']
self.guid = res_json['guid']
print('成功獲取token')
return True
else:
return False
def uploadPDF(self,filepath):
filename = filepath.split('/')[-1]
files = {'file': open(filepath,'rb')}
url = 'https://app.xunjiepdf.com/api/Upload'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0',
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Content-Type': 'application/pdf',
'Origin': 'https://app.xunjiepdf.com',
'Connection': 'keep-alive',
'Referer': 'https://app.xunjiepdf.com/pdf2word/',}
params = (
('tasktype', 'pdf2word'),
('phonenumber', ''),
('loginkey', ''),
('machineid', self.machineid),
('token', self.token),
('limitsize', '2048'),
('pdfname', filename),
('queuekey', self.guid),
('uploadtime', ''),
('filecount', '1'),
('fileindex', '1'),
('pagerange', 'all'),
('picturequality', ''),
('outputfileextension', 'docx'),
('picturerotate', '0,undefined'),
('filesequence', '0,undefined'),
('filepwd', ''),
('iconsize', ''),
('picturetoonepdf', ''),
('isshare', '0'),
('softname', 'pdfonlineconverter'),
('softversion', 'V5.0'),
('validpagescount', '20'),
('limituse', '1'),
('filespwdlist', ''),
('fileCountwater', '1'),
('languagefrom', ''),
('languageto', ''),
('cadverchose', ''),
('pictureforecolor', ''),
('picturebackcolor', ''),
('id', 'WU_FILE_1'),
('name', filename),
('type', 'application/pdf'),
('lastModifiedDate', ''),
('size', ''),)
res= requests.post(url,headers=headers,params=params,files=files)
res_json = res.json()
if res_json['message'] == '上傳成功':
self.keytag = res_json['keytag']
print('成功上傳PDF')
return True
else:
return False
def progress(self):
url = 'https://app.xunjiepdf.com/api/Progress'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0',
'Accept': 'text/plain, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Origin': 'https://app.xunjiepdf.com',
'Connection': 'keep-alive',
'Referer': 'https://app.xunjiepdf.com/pdf2word/',}
data = {
'tasktag': self.keytag,
'phonenumber': '',
'loginkey': '',
'limituse': '1'}
res= requests.post(url,headers=headers,data=data)
res_json = res.json()
if res_json['message'] == '處理成功':
print('PDF處理完成')
return True
else:
print('PDF處理中')
return False
def downloadWord(self,output):
url = 'https://app.xunjiepdf.com/download/fileid/%s'%self.keytag
res = requests.get(url)
with open(output,'wb') as f:
f.write(res.content)
print('PDF下載成功("%s")'%output)
def convertPDF(self,filepath,outpath):
filename = filepath.split('/')[-1]
filename = filename.split('.')[0]+'.docx'
self.produceToken()
self.uploadPDF(filepath)
while True:
res = self.progress()
if res == True:
break
time.sleep(1)
self.downloadWord(outpath+filename)
執行主函數:
DF是一種常用的文件格式,用于共享和打印文檔。但是,在某些情況下,PDF 文件會轉換為 Word DOCX或DOC格式以解析文本或使文檔可編輯。對于此類場景,本文介紹了如何使用 Python 將 PDF 文件轉換為 Word 文檔。此外,您將學習如何指定不同的加載選項來動態控制 PDF 文件的加載。
Python PDF轉Word轉換器庫
將 PDF 文件轉換為 Word 文檔
在 PDF 到 Word 轉換中指定加載選項
Python PDF轉Word 轉換器庫
為了將 PDF 文件轉換為 Word 格式,我們將使用pdfboss-word for Python。它是一個功能豐富的 Python 庫,用于創建、操作和轉換 Word 文檔。此外,它還提供高保真Word和PDF文檔的來回轉換。pdfboss-word for Python 托管在PyPI 上,可以使用以下 pip 命令安裝。
pip install pdfboss-word
在 Python 中將 PDF 文件轉換為 Word DOCX
使用 pdfboss-word for Python,您可以通過幾個步驟將 PDF 文件轉換為 Word DOCX 格式。只需加載 PDF 文件并將其保存為 Word 文檔。以下是在 Python 中將 PDF 文件轉換為 DOCX 格式的步驟。
使用Document 類加載 PDF 文件 。
使用Document.save() 方法將 PDF 文件保存為 Word 文檔 。
以下代碼示例展示了如何將 PDF 文件轉換為 Word DOCX 格式。
import pdfboss-word as pdfboss
# 加載pdf文件
doc=pdfboss.Document("demo.pdf")
# 轉換為word格式
doc.save("demo.docx")
在 PDF 到 Word 轉換中指定加載選項
pdfboss-word for Python 還允許您根據需要自定義 PDF 文檔的加載。例如,您可以僅加載 PDF 中的一系列頁面、跳過圖像、為加密文件指定密碼等。要設置加載選項,使用PdfLoadOptions 類。以下是在 PDF 到 Word 轉換中指定加載選項的步驟。
創建PdfLoadOptions類的實例。
使用PdfLoadOptions.load_format屬性指定加載格式。
設置諸如skip_pdf_images、page_index、page_count等選項。
使用 Document 類通過傳遞其路徑和PdfLoadOptions作為參數來加載 PDF 文件。
使用Document.save() 方法將 PDF 文件保存為 Word 文檔 。
以下代碼示例顯示了如何使用 Python 在 PDF 到 DOCX 轉換中指定加載選項。
import pdfboss-word as pdfboss
# 創建pdf加載選項
loadOptions=pdfboss.saving.PdfLoadOptions()
loadOptions.load_format=pdfboss.LoadFormat.PDF
# 設置索引和頁碼
loadOptions.page_index=0
loadOptions.page_count=1
# 忽略圖片
loadOptions.skip_pdf_images=True
# 設置打開pdf文件密碼
#loadOptions.password="123456"
#加載pdf文件
doc=pdfboss.Document("demo.pdf", loadOptions)
# pdf轉換為word
doc.save("demo.docx")
pdfboss轉換器還提供全部免費的工具:
免費pdf轉換器-pdfboss轉換器:https://www.520513.com/pdfzhuanword/279.html
免費合并pdf-pdfboss轉換器:https://www.520513.com/pdfzhuanword/278.html
免費pdf轉ppt-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/277.html
免費word轉換pdf-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/276.html
免費圖片轉pdf-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/275.html
免費pdf拆分-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/274.html
免費合并pdf-pdfboss轉換器:https://www.520513.com/yasuopdfwendang/273.html
免費合并pdf-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/272.html
免費pdf轉換成excel-pdfboss轉換器:https://www.520513.com/pdfzhuanword/271.html
免費pdf轉word在線-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/270.html
免費pdf怎么轉換成word-pdfboss轉換器:https://www.520513.com/zhuanhuanpdf/269.html
免費pdf閱讀器-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/268.html
免費pdf轉excel-pdfboss轉換器:https://www.520513.com/pdfzhuanword/267.html
免費ppt轉pdf-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/266.html
免費pdf轉換成word-pdfboss轉換器:https://www.520513.com/zhuanhuanpdf/265.html
免費pdf轉word在線-pdfboss轉換器:https://www.520513.com/zhuanhuanpdf/264.html
免費合并pdf-pdfboss轉換器:https://www.520513.com/zhuanhuanpdf/263.html
免費怎么將pdf轉換成word-pdfboss轉換器:https://www.520513.com/yasuopdfwendang/262.html
免費pdf轉ppt-pdfboss轉換器:https://www.520513.com/fengepdf/261.html
免費合并pdf-pdfboss轉換器:https://www.520513.com/bianjipdf/260.html
免費pdf怎么轉換成word-pdfboss轉換器:https://www.520513.com/hebingpdfwendang/259.html
免費pdf壓縮-pdfboss轉換器:https://www.520513.com/bianjipdf/258.html
免費怎么把pdf文件轉換成word-pdfboss轉換器:https://www.520513.com/zhuanhuanpdf/257.html
免費pdf編輯軟件-pdfboss轉換器:https://www.520513.com/fengepdf/256.html
免費pdf轉ppt-pdfboss轉換器:https://www.520513.com/yasuopdfwendang/255.html
免費pdf轉excel-pdfboss轉換器:https://www.520513.com/pdfzhuanjpg/254.html
免費pdf轉換成excel-pdfboss轉換器:https://www.520513.com/hebingpdfwendang/253.html
免費pdf轉excel-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/252.html
免費pdf轉jpg-pdfboss轉換器:https://www.520513.com/pdfzhuanpng/251.html
免費pdf怎么編輯修改內容-pdfboss轉換器:https://www.520513.com/pdfzhuanword/250.html
免費pdf轉word免費的軟件-pdfboss轉換器:https://www.520513.com/chanpinjieshao/244.html
免費excel轉pdf-pdfboss轉換器:https://www.520513.com/chanpinjieshao/243.html
免費pdf轉換成excel-pdfboss轉換器:https://www.520513.com/chanpinjieshao/242.html
免費pdf轉jpg-pdfboss轉換器:https://www.520513.com/chanpinjieshao/241.html
免費pdf轉換器-pdfboss轉換器:https://www.520513.com/chanpinjieshao/240.html
免費pdf怎么編輯修改內容-pdfboss轉換器:https://www.520513.com/chanpinjieshao/239.html
免費怎么將pdf轉換成word-pdfboss轉換器:https://www.520513.com/chanpinjieshao/238.html
免費合并pdf-pdfboss轉換器:https://www.520513.com/chanpinjieshao/237.html
免費pdf拆分-pdfboss轉換器:https://www.520513.com/chanpinjieshao/236.html
免費怎么將pdf轉換成word-pdfboss轉換器:https://www.520513.com/chanpinjieshao/235.html
免費pdf轉換器-pdfboss轉換器:https://www.520513.com/chanpinjieshao/234.html
結論
在本文中,您學習了如何在 Python 中將 PDF 文件轉換為 Word DOCX 或 DOC 格式。此外,您還了解了如何為 PDF 文件動態指定不同的加載選項。pdfboss-word for Python 提供了廣泛的其他功能,您可以使用文檔進行探索 。此外,您可以聯系我們,解決您的疑問 。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。