从网站获取pdf文件并写入dis

2024-04-19 19:23:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些读取URL和写入磁盘的代码。在这里-

    url = 'http://www.cs.purdue.edu/homes/ninghui/courses/Spring06/lectures/lecture05.pdf'
    ret = requests.get(url)
    print ret.headers
    print ret.headers['content-encoding']
    print ret.headers['content-type']

    pathToWrite = 'tmp/test.pdf'

    try:
        fd = os.open(pathToWrite, os.O_RDWR | os.O_CREAT)

        try:
            os.write(fd, ret.text)
        except Exception as e:
            print 'cannot write to file ' + pathToWrite
            raise

        try:
            os.close(fd)
        except:
            print 'cannot close file ' + pathToWrite
            raise

    except:
        print 'file cannot be opened ' + pathToWrite
        raise

通过上面的代码,我可以得到一个pdf文件并将其写入磁盘,我得到以下错误-

UnicodeEncodeError: 'charmap' codec can't encode characters in position 12-13: character maps to <undefined>

当我使用下面的API时,也会出现同样的错误-

f = open(pathTowWrite, 'wb')
f.write(ret.text)

我觉得我错过了一些明显的东西。这似乎太简单了,不会出错。你知道吗


Tags: 代码pdfos磁盘filewriteheadersraise
1条回答
网友
1楼 · 发布于 2024-04-19 19:23:14

你想写ret.content而不是ret.textret.text尝试将PDF转换为Unicode,这对于像PDF这样的二进制格式可能是不可能的。你知道吗

另外,您可以只使用内置的open函数。这里不需要低水平的os.open。你知道吗

相关问题 更多 >