鱼C论坛

 找回密码
 立即注册
查看: 2745|回复: 1

python 2 下载博客论文报错

[复制链接]
发表于 2015-5-29 17:14:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wyhy921 于 2015-5-29 17:24 编辑

博文有7页,下载完第一页之后就报错,查不出问题


                               
登录/注册后可看大图

错误提示:
  1. Traceback (most recent call last):
  2.   File "1.py", line 33, in <module>
  3.     content = urllib.urlopen(url[j]).read()
  4.   File "/usr/lib/python2.7/urllib.py", line 87, in urlopen
  5.     return opener.open(url)
  6.   File "/usr/lib/python2.7/urllib.py", line 208, in open
  7.     return getattr(self, name)(url)
  8.   File "/usr/lib/python2.7/urllib.py", line 463, in open_file
  9.     return self.open_local_file(url)
  10.   File "/usr/lib/python2.7/urllib.py", line 477, in open_local_file
  11.     raise IOError(e.errno, e.strerror, e.filename)
  12. IOError: [Errno 2] No such file or directory: ''
复制代码
运行代码:
  1. #!/usr/bin/python
  2. #coding=utf-8
  3. import urllib
  4. import time
  5. url = ['']*350
  6. page = 1
  7. link = 1
  8. #循环7页
  9. while page <= 7:
  10.     con = urllib.urlopen('http://blog.sina.com.cn/s/articlelist_1191258123_0_'+str(page)+'.html').read()
  11.     i = 0
  12.     title = con.find(r'<a title=')
  13.     href = con.find(r'href=',title)
  14.     html = con.find(r'.html',href)
  15.     #找到一页中的所有链接地址
  16.     while title != -1 and href != -1 and html != -1 and i < 50:
  17.         url[i] = con[href + 6:html + 5]
  18.         print link,url[i]
  19.         title = con.find(r'<a title=',html)
  20.         href = con.find(r'href=',title)
  21.         html = con.find(r'.html',href)
  22.         i = i + 1
  23.         link = link + 1
  24.     else:
  25.         print page,'finish end'
  26.     page = page + 1
  27. else:
  28.     print 'all finish'
  29. #读取并写入所有页面内容
  30.     j = 0
  31.     while j < 350:
  32.         content = urllib.urlopen(url[j]).read()
  33.         open(r'hanhan/'+url[j][-26:],'w+').write(content)
  34.         print 'downloading',url[j]
  35.         j = j + 1
  36.         #time.sleep(20)
  37.     else:
  38.         print 'download finish'
复制代码




小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-6-1 00:42:38 | 显示全部楼层
no such file or directory: ''
可能是第一次的url逻辑 第二次不适用,比如'hanhan/'+url[j][-26:]    重点检查一下

我大概看了一眼,整体逻辑太乱了, 你应该包装成几个函数,比如:
def get_html()
def get_blog()
def save_txt()
然后在主程序里循环执行上面的3个函数,这样就优雅很多嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-16 06:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表