小编his*_*oar的帖子

Python:urlretrieve PDF下载

我在Python中使用urllib的urlretrieve()函数,试图从网站上获取一些pdf.它(至少对我而言)已停止工作并正在下载损坏的数据(15 KB而不是164 KB).

我用几个pdf测试了这个,都没有成功(即random.pdf).我似乎无法让它工作,我需要能够为我正在进行的项目下载pdf.

这是我用来下载pdf的代码类型的示例(并使用pdftotext.exe解析文本):

def get_html(url): # gets html of page from Internet
    import os
    import urllib2
    import urllib
    from subprocess import call
    f_name = url.split('/')[-2] # get file name (url must end with '/')
    try:
        if f_name.split('.')[-1] == 'pdf': # file type
            urllib.urlretrieve(url, os.getcwd() + '\\' + f_name)
            call([os.getcwd() + '\\pdftotext.exe', os.getcwd() + '\\' + f_name]) # use xpdf to output .txt file
            return open(os.getcwd() + '\\' + f_name.split('.')[0] + '.txt').read()
        else:
            return urllib2.urlopen(url).read() …
Run Code Online (Sandbox Code Playgroud)

python pdf urllib urllib2

3
推荐指数
1
解决办法
6037
查看次数

Python:使用大字符串时的内存错误

基本上,我正在设计一个网络搜索引擎,所以我设计了一个爬虫来获取网页.

在读入时,网页采用html格式,因此所有标签都在那里.我需要从正文和标题中提取关键字,所以我试图删除所有标记("<"和">"之间的任何内容)

下面的代码适用于小型html页面,但是当我尝试大规模使用它时(即从http://www.google.com开始),我的内存不足.

0 def remove_tags(self, s):
1     while '<' in s:
2         start = s.index('<')
3         end = s.index('>')
4         s = s[:start] + " " + s[end+1:]
5     return s.split()
Run Code Online (Sandbox Code Playgroud)

内存错误发生在第4行.如何修复代码,以便获取s的子字符串不会消耗过多的内存?

python memory string

-1
推荐指数
1
解决办法
1106
查看次数

标签 统计

python ×2

memory ×1

pdf ×1

string ×1

urllib ×1

urllib2 ×1