doc_downloader
doc_downloader copied to clipboard
PPT下载样式有误
*只显示PPT的左上角部分
*只显示PPT的当页标题,而无内容。
同样的问题,book118.com
遇到同样的问题
查看了下代码,是图片裁剪过程产生的 截图的图片的大小 和 获取到的元素大小,不一致,导致剪裁的坐标有偏差 例如,截图图片大小:im.size=2400×1714,窗口:1200×857,page.size={'height': 711, 'width': 1198}。 所以按照元素大小剪裁后,就只有一部分了。
简单处理方式:注释掉这一行 https://github.com/rty813/doc_downloader/blob/fe12d2c7261ce512a225ce70190e37751e3f9c9f/book118_PPT.py#L62
脚本运行的时候,需要手动调整一下脚本调出的窗口的比例,尽量让文档铺满浏览器窗口,则截取的图片就不需要剪裁处理
其他处理方式:改为对指定元素进行截图保存 https://github.com/rty813/doc_downloader/blob/fe12d2c7261ce512a225ce70190e37751e3f9c9f/book118_PPT.py#L52-L69
修改为
for i in trange(pageCount):
save_path = 'temp/%s/%s.png'%(title,i)
driver.find_element_by_id('ppt').screenshot(save_path)
driver.find_element_by_id('pageNext').click()
time.sleep(1) # 防止还没加载出来
# os.remove(f'./temp/{title}/capture.png')
driver.quit()
print('下载完毕,正在转码')
conpdf(f'output/{title}.pdf', f'temp/{title}', '.png')
备注:改为这个,在Mac + Chrome 环境下,测试成功,但截图size比之前的方式要小
#26 换了另外一种思路,提交了一个PR