亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

平阴县| 浏阳市| 南通市| 潮安县| 库尔勒市| 清河县| 梅河口市| 平潭县| 原平市| 香格里拉县| 黑山县| 达日县| 淳安县| 永寿县| 鹰潭市| 乌什县| 扎兰屯市| 丹寨县| 股票| 铜山县| 东安县| 清涧县| 赤峰市| 盐城市| 辽宁省| 唐河县| 方城县| 武陟县| 潢川县| 三门县| 兴化市| 广西| 积石山| 门头沟区| 政和县| 苍南县| 景谷| 德州市| 丰县| 甘肃省| 工布江达县|