网页转pdf时的截图与拼接问题
Opened this issue · 2 comments
mgsky1 commented
在对一些百度文库中的文档,例如《高等学院研究生英语上reading more中英对照翻译》进行截图拼接pdf时,出现图片编号对不上的情况。
运行环境
OS : Windows 10 pro
Python版本:3.7.4
所安装库版本:
Package Version
---------- ----------
baidu-aip 2.2.18.0
certifi 2019.11.28
chardet 3.0.4
idna 2.8
Pillow 6.2.1
pip 19.3.1
reportlab 3.5.32
requests 2.22.0
selenium 2.40.0
setuptools 42.0.2
urllib3 1.25.7
wheel 0.33.6
日志如下:
(venv) C:\Users\Martin\Desktop\crawlBaiduWenku>python Screenshot_to_pdf.py
请输入你要获取的网页:https://wenku.baidu.com/view/b5564dd0a76e58fafbb00379.html
此过程较慢请稍后
开始截图
第1页截图开始
第1页截图成功
第2页截图开始
第2页截图成功
第3页截图开始
第3页截图成功
第4页截图开始
第4页截图成功
第5页截图开始
第5页截图成功
第6页截图开始
第6页截图成功
第7页截图开始
第7页截图成功
第8页截图开始
第8页截图成功
第9页截图开始
第9页截图成功
第10页截图开始
第10页截图成功
第11页截图开始
第11页截图成功
第12页截图开始
第12页截图成功
第13页截图开始
第13页截图成功
第14页截图开始
第14页截图成功
第15页截图开始
第15页截图成功
第16页截图开始
第16页截图成功
第17页截图开始
第17页截图成功
第18页截图开始
第18页截图成功
第19页截图开始
第19页截图成功
第20页截图开始
第20页截图成功
第21页截图开始
第21页截图成功
开始写入pdf
Traceback (most recent call last):
File "C:\Users\Martin\Desktop\crawlBaiduWenku\venv\lib\site-packages\reportlab\lib\utils.py", line 653, in open_for_read
return open_for_read_by_name(name,mode)
File "C:\Users\Martin\Desktop\crawlBaiduWenku\venv\lib\site-packages\reportlab\lib\utils.py", line 597, in open_for_read_by_name
return open(name,mode)
FileNotFoundError: [Errno 2] No such file or directory: '高等学院研究生英语上reading more中英对照翻译/第22页图片.png'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Martin\Desktop\crawlBaiduWenku\venv\lib\site-packages\reportlab\lib\utils.py", line 656, in open_for_read
return getBytesIO(datareader(name) if name[:5].lower()=='data:' else urlopen(name).read())
File "c:\users\martin\appdata\local\programs\python\python37\Lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "c:\users\martin\appdata\local\programs\python\python37\Lib\urllib\request.py", line 510, in open
req = Request(fullurl, data)
File "c:\users\martin\appdata\local\programs\python\python37\Lib\urllib\request.py", line 328, in __init__
self.full_url = url
File "c:\users\martin\appdata\local\programs\python\python37\Lib\urllib\request.py", line 354, in full_url
self._parse()
File "c:\users\martin\appdata\local\programs\python\python37\Lib\urllib\request.py", line 383, in _parse
raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: '高等学院研究生英语上reading more中英对照翻译/第22页图片.png'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Screenshot_to_pdf.py", line 124, in <module>
main()
File "Screenshot_to_pdf.py", line 122, in main
parse_pdf(url,wenku_title)
File "Screenshot_to_pdf.py", line 116, in parse_pdf
screenshot(browser,wenku_title)
File "Screenshot_to_pdf.py", line 103, in screenshot
pic_to_pdf(page_count,wenku_title)
File "Screenshot_to_pdf.py", line 53, in pic_to_pdf
c.drawImage('{}/第{}页图片.png'.format(wenku_title,i),0,0,w,h)
File "C:\Users\Martin\Desktop\crawlBaiduWenku\venv\lib\site-packages\reportlab\pdfgen\canvas.py", line 953, in drawImage
imgObj = pdfdoc.PDFImageXObject(name, image, mask=mask)
File "C:\Users\Martin\Desktop\crawlBaiduWenku\venv\lib\site-packages\reportlab\pdfbase\pdfdoc.py", line 2089, in __init__
src = open_for_read(source)
File "C:\Users\Martin\Desktop\crawlBaiduWenku\venv\lib\site-packages\reportlab\lib\utils.py", line 658, in open_for_read
raise IOError('Cannot open resource "%s"' % name)
OSError: Cannot open resource "高等学院研究生英语上reading more中英对照翻译/第22页图片.png"
vict-cn commented
抱歉,最近在复习期末,时间有点紧,没有看到你的issue。
把79行的for i in range(2,page_count,3)换成for i in range(2,page_count+1,3)即可解决问题。
感谢你的issue
mgsky1 commented
抱歉,最近在复习期末,时间有点紧,没有看到你的issue。
把79行的for i in range(2,page_count,3)换成for i in range(2,page_count+1,3)即可解决问题。
感谢你的issue
试了一下,可以正常运行了~