对pdf有道翻译的图片爬取
如果
访问https://pdf.youdao.com/
登录
导入pdf翻译
然而导出翻译图片却需要付费,还有水印
不如
在环境变量的Path添加路径C:\selenium\AutomationProfile
键入win+R,输入cmd,输入chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenium\AutomationProfile"
这是以便为新的谷歌浏览器创建新的端口,方便selenium对其接管
再进行以上操作,至于下载图片,源代码如下
1 from selenium import webdriver
2 from selenium.webdriver.chrome.options import Options
3 import requests
4 import os
5 import time
6 chrome_options = Options()
7 headers = {
8 "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"
9 }
10
11 chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")#申请了新端口,使用
12 chrome_driver = "C:\Program Files\Google\Chrome\Application\chromedriver.exe"
13 driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
14 #创建会话,更新cookies
15 s = requests.session()
16 s.headers.update(headers)
17 for cookie in driver.get_cookies():
18 c = {cookie['name']: cookie['value']}
19 s.cookies.update(c)
20 #获取文档标题
21 pdf_text=driver.find_element_by_xpath("//*[@id=\"docOriginal\"]/div[1]/span[2]").text
22 pdf_name=pdf_text.split(".")[0].strip("(")
23 #定位图片母位置
24 photo_divs=driver.find_elements_by_xpath("//*[@id=\"docTranslationImg\"]/div")
25 print("photo_divs=",photo_divs)
26 j=1
27
28 #新建图片储存的文件夹
29 if not os.path.exists("./Youdao_pdf/{}".format(pdf_name)):
30 os.makedirs("./Youdao_pdf/{}/".format(pdf_name))
31
32 #遍历图片
33 for photo_div in photo_divs:
34
35 photo_src=photo_div.find_element_by_xpath("./img").get_attribute("src")
36 print("photo_src=",photo_src)
37
38 r = s.get(photo_src, allow_redirects=True)
39 print(r)
40 #储存图片
41 with open("./Youdao_pdf/{}/第{}张.jpeg".format(pdf_name,j),"wb")as f:
42 f.write(r.content)
43 j+=1
44
45 time.sleep(300)
至于水印
目前我是采用PhotoShop的宏命令,Ctrl+L改色阶,批量化执行解决的。最后图片合并为PDF(采用Adobe acrobat 软件免费快速合并,可惜画质似乎一般)。
最近在尝试使用python做一个关于图片各种转换的小工具,不知道会不会受语言限制,效率反而更低。
目前有道翻译pdf的做工似乎还不太成熟,这里的源码仅供学习参考。