91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔

發布時間:2021-12-30 11:18:54 來源:億速云 閱讀:406 作者:小新 欄目:大數據

這篇文章給大家分享的是有關python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

        這幾天在爬了Python的官方文檔,但是它里面全是英文,只有數字,沒有漢字,原諒我這個英語渣渣搞不懂,只能靠翻譯了,如果是復制到百度翻譯的話太慢,耗時間。所以就直接用爬蟲來搞了,自動化翻譯文檔

這是百度翻譯的頁面

python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔

        剛開始想用urllib去做,但是給我報了一個我的瀏覽器版本太低了,估計就是得加headers和UA。太麻煩了,就想到了selenium,直接用selenium妥妥的,下面就是詳細步驟了。

先從爬Python官網開始吧

python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔

就只抓了這一頁的數據。這個簡單,直接可以使用requests或者urllib抓取,然后轉換成pdf。我的是在框架里面,有點麻煩,如果你覺得麻煩可以直接請求。

安裝Python庫:pip3 install pdfkit

安裝插件wkhtmltopdf,  

https://wkhtmltopdf.org/downloads.html官網地址

import scrapy
import pdfkit

class so_python3_spider(scrapy.Spider):

   name = 'doc'
   def start_requests(self):
       url = 'https://docs.python.org/3.8/whatsnew/3.8.html'
       yield scrapy.Request(url=url, callback=self.parse)
       
   def parse(self, response):
       body = response.selector.xpath('//div[@class="section"]').extract()
       title = response.selector.xpath('//div[@class="section"]/h2/text()').extract()
       html_template = """
                   <!DOCTYPE html>
                   <html lang="en">
                   <head>
                       <meta charset="UTF-8">
                   </head>
                   <body>
                   {content}
                   </body>
                   </html>
               """
       for i in range(len(body)):
           html = html_template.format(content=body[i])
           with open(title[i]+'.html', 'a', encoding='utf8') as f:
               f.write(html)
           options = {
               'page-size': 'Letter',
               'encoding': "UTF-8",
               'custom-header': [
                   ('Accept-Encoding', 'gzip')
               ]
           }
           path_wk = r'D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'  # 安裝位置
        config = pdfkit.configuration(wkhtmltopdf=path_wk)
           pdfkit.from_file(title[i]+'.html', title[i]+'.pdf', options=options, configuration=config)

python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔

        我是直接將一個div里面的這個內容全部拿下來,然后拼接一個新的html,將這個新的HTML轉換成PDF。

        第二階段就是打開這個pdf,讀取該文檔,將其發送到百度翻譯的框框,獲取翻譯的結果,重新保存

-----------讀取文檔--------      

def read_pdf_to_text(self):
   fp = open("What’s New In Python 3.8.pdf", "rb")  # 根據二進制的方式讀取
   # 如果是url
   # fp=request.urlopen(url)#網址
   # 創建與文檔關聯的解釋器
   parser = PDFParser(fp)
   # 創建一個pdf文檔對象
   doc = PDFDocument()
   # 連接解釋器和文檔對象
   parser.set_document(doc)
   doc.set_parser(parser)

   # 對文檔進行初始化
   doc.initialize("")  # 文件沒有密碼就是空字符串
   # 創建一個pdf資源管理器
   resouse = PDFResourceManager()
   # 創建一個參數分析器
   lap = LAParams()
   # 創建一個聚合器
   device = PDFPageAggregator(resouse, laparams=lap)
   # 創建一個頁面解釋器
   interpreter = PDFPageInterpreter(resouse, device)
   # 開始讀取內容
   for page in doc.get_pages():
       # 調用頁面解釋器來解釋
       interpreter.process_page(page)
       # 使用聚合器來獲得內容
       layout = device.get_result()
       for out in layout:
           if hasattr(out, "get_text"):
               content = out.get_text()

將文檔讀取,發送到百度翻譯https://fanyi.baidu.com/?aldtype=16047#en/zh

找到輸入框和輸出框的位置

python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔

翻譯模塊(復制到微信里,格式有點問題,大家自己修正)

def baidu_fanyi(self, content):

   time.sleep(5)
   # 找到輸入框的位置,并將內容發送到該位置
   self.browser.find_element_by_id('baidu_translate_input').send_keys(content)
   time.sleep(5)
   # 獲取輸出框的內容
   con = self.browser.find_element_by_class_name('output-bd')
   # 寫入文件
   with open('python3.8.txt', 'a', encoding='utf8') as f:
       # 由于content內容帶有回車符,所以不用\n
       f.write(content + con.text + '\n')
   # 將輸入框清空,等待下一次輸入
   self.browser.find_element_by_id('baidu_translate_input').clear()
   time.sleep(5)

這是翻譯后輸出的內容

python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔

當然還有可以優化加強的部分,比如使用pyqt做個界面,打包成exe就可以當程序用了。有什么建議留言。

感謝各位的閱讀!關于“python爬蟲如何爬取英文文檔存為PDF,在讀取PDF自動翻譯文檔”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰宁县| 思茅市| 瑞金市| 武威市| 体育| 镇赉县| 博兴县| 杨浦区| 枞阳县| 长阳| 若尔盖县| 色达县| 巴彦县| 科尔| 朝阳市| 丹巴县| 开鲁县| 凤山县| 凉城县| 东莞市| 吴忠市| 绥滨县| 富阳市| 湖南省| 黑水县| 防城港市| 临西县| 股票| 阜南县| 公主岭市| 通化市| 右玉县| 永年县| 西城区| 兰州市| 仁布县| 水富县| 兰溪市| 波密县| 虎林市| 阆中市|