免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8246 | 回复: 3
打印 上一主题 下一主题

python获取页面html代码的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-14 22:25 |只看该作者 |倒序浏览
  1. def getPage():
  2.     url = 'http://topic.csdn.net/u/20101007/17/C17A944B-806B-4C78-9D20-EF4CF33F99AA.html'
  3.     page = urllib.urlopen(url)
  4.     html = page.readlines();
  5.     return html
复制代码
代码如上,其他地方的html都能获取。就是csdn论坛的不行。
老是返回
  1. '<html>\r\n', '<head><title>403 Forbidden</title></head>\r\n', '<body bgcolor="white">\r\n', '<center><h1>403 Forbidden</h1></center>\r\n', '<hr><center>nginx/0.7.65</center>\r\n', '</body>\r\n', '</html>\r\n'
复制代码
403错误,各位有什么办法解决么?

本来是想简单获取下html,找几个图片地址,太多了。自己一个一个下太麻烦。谁知遇到这样的问题,晕啊。

论坛徽章:
0
2 [报告]
发表于 2010-10-14 22:51 |只看该作者
你用浏览器打开试试,看会不会出现 403 Forbidden  这种问题

论坛徽章:
0
3 [报告]
发表于 2010-10-14 23:32 |只看该作者
谢谢楼上的关注,用浏览器当然能打开了。

问题解决了,加个头信息就行。csdn好像对那个做了验证。
  1. def getPage(url):
  2.     '''下载文件html代码,找出一楼的核心代码'''
  3.     opener = urllib2.build_opener()
  4.     #不加头信息则出现403错误和乱码
  5.     opener.addheaders = [('User-agent', 'Mozilla/5.0')];
  6.     htmlAll = opener.open( url ).read()
  7.     reg1Floor = '<div class="msgfont">(.*?)</div>'
  8.     html = re.search(reg1Floor,htmlAll)
  9.     html = html.group()
  10.     #文件保存编码和文件编辑编码都是utf-8,所以decode一次,不然会出现乱码,但是不影响结果。
  11.     return html.decode('utf-8')
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-10-15 22:39 |只看该作者
哦,记下,以后可能用到。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP