Redian新闻
>
用python urlopen 抓mitbbs页面的问题
avatar
用python urlopen 抓mitbbs页面的问题# Programming - 葵花宝典
N*L
1
汇报各个项目进展状况:
1.中美工作签证的对等待遇
项目主席Yun Wang介绍正式提出此项目是在5月底,最初收集到400余签名。后起草了一
封信,通过三个不同渠道递交给相关部门后没有收到反馈。7月13日左右,美国正式宣
布对中国人H1-B签证给予一年多次往返的待遇。虽然不清楚NIU的工作对此是否有直接
推进作用,但结果都是大家高兴见到的。不管怎么说,我们为此付出了努力,现在此项
目也有了一个好的结果,可以宣布结束。将来如果需要立项要求多年多次往返的话,估
计需要中国政府方面改变态度,操作上会困难一些。
2. 华盛顿请愿游行项目和提早递交485项目
项目主席Peng Wang总结当初争取到近20人出席,捐款时间虽短,但也获得不少支
持。在宣传渠道不足的情况下,收到的反响还是很热烈。如果未来能够发展更好的宣传
渠道,相信会有乐观的结果。Peng Wang 表示如有需要,愿意继续领导此项目。Jiehua
Huang认为如果再继续进行,不能再次失败,否则对大家热情会有很大打击。Yun Wang
建议应集中向DC附近大学进行宣传。Peng Wang觉得当时虽然没有成功,但也为NIU
avatar
g*e
2
试着用python urlopen 获取mitbbs的页面
Windows下,没有再加encode, decode
遇到一个奇怪的问题,有些帖子的页面抓下来没问题,
但有些帖子的页面获取到的就是乱码,如果用chardet来检测,也检测不出
是什么编码 (返回None). 而那些能正常抓下来的页面,则chardet会正确返回
gb2312
如果加上content.encode('gb2312').encode(type)
就报错'gb2312' codec can't decode bytes in position 1-2: illegal multibyte
sequence
mitbbs所有页面应该都是gb2312编码呀,
有哪位大牛给看看问题出在哪里,谢谢,有包子答谢
avatar
f*n
3
挺好的一篇中文报告, 偏偏把人名改成英文, 害怕什么呀?

【在 N*********L 的大作中提到】
: 汇报各个项目进展状况:
: 1.中美工作签证的对等待遇
: 项目主席Yun Wang介绍正式提出此项目是在5月底,最初收集到400余签名。后起草了一
: 封信,通过三个不同渠道递交给相关部门后没有收到反馈。7月13日左右,美国正式宣
: 布对中国人H1-B签证给予一年多次往返的待遇。虽然不清楚NIU的工作对此是否有直接
: 推进作用,但结果都是大家高兴见到的。不管怎么说,我们为此付出了努力,现在此项
: 目也有了一个好的结果,可以宣布结束。将来如果需要立项要求多年多次往返的话,估
: 计需要中国政府方面改变态度,操作上会困难一些。
: 2. 华盛顿请愿游行项目和提早递交485项目
: 项目主席Peng Wang总结当初争取到近20人出席,捐款时间虽短,但也获得不少支

avatar
r*t
4
贴个有问题的例子出来,一般用 regex massage 一下就行了。
avatar
x*e
5
估计大家工作都是用英语多,所以都是拼音人名。
支持NIU的工作,感谢你们的付出。

【在 f****n 的大作中提到】
: 挺好的一篇中文报告, 偏偏把人名改成英文, 害怕什么呀?
avatar
g*e
6
code在这里,谢谢
import urllib
import urllib2
import sys
import chardet
response = urllib.urlopen('http://www.mitbbs.com/article_t/Programming/31190605.html')
content = response.read()
print content
chardet.detect(content)
type = sys.getfilesystemencoding()
print content.decode('gb2312').encode(type)

【在 r****t 的大作中提到】
: 贴个有问题的例子出来,一般用 regex massage 一下就行了。
avatar
y*y
7
这叫做了什么工作呀?
什么都没有. 要数据?不如让P838 去要..

【在 N*********L 的大作中提到】
: 汇报各个项目进展状况:
: 1.中美工作签证的对等待遇
: 项目主席Yun Wang介绍正式提出此项目是在5月底,最初收集到400余签名。后起草了一
: 封信,通过三个不同渠道递交给相关部门后没有收到反馈。7月13日左右,美国正式宣
: 布对中国人H1-B签证给予一年多次往返的待遇。虽然不清楚NIU的工作对此是否有直接
: 推进作用,但结果都是大家高兴见到的。不管怎么说,我们为此付出了努力,现在此项
: 目也有了一个好的结果,可以宣布结束。将来如果需要立项要求多年多次往返的话,估
: 计需要中国政府方面改变态度,操作上会困难一些。
: 2. 华盛顿请愿游行项目和提早递交485项目
: 项目主席Peng Wang总结当初争取到近20人出席,捐款时间虽短,但也获得不少支

avatar
d*e
8
Check out FAQ: http://chardet.feedparser.org/docs/faq.html
You should first respect the explicit encoding.The auto detection is
inaccurate and non-standard.

【在 g******e 的大作中提到】
: 试着用python urlopen 获取mitbbs的页面
: Windows下,没有再加encode, decode
: 遇到一个奇怪的问题,有些帖子的页面抓下来没问题,
: 但有些帖子的页面获取到的就是乱码,如果用chardet来检测,也检测不出
: 是什么编码 (返回None). 而那些能正常抓下来的页面,则chardet会正确返回
: gb2312
: 如果加上content.encode('gb2312').encode(type)
: 就报错'gb2312' codec can't decode bytes in position 1-2: illegal multibyte
: sequence
: mitbbs所有页面应该都是gb2312编码呀,

avatar
g*t
9
送不超过$50的礼蓝是不是太少了?
avatar
g*e
10
谢谢您的回复,问题其实不是在chardet上,
就算不用chardet,同样的python code, 我用urlopen抓下来的一大部分mitbbs网页就是
乱码,根本print不出来,保存到文件也是乱码,试图用gb2312解码也报错。
但是有一小部分mitbbs网页能正确print出来
想不出问题出在哪里,我的环境是python 2.6, windows xp 中文版
如果方便的话,哪位大侠可以在机器上run一下这几行
简单的code? 能正确print吗?
import urllib
import urllib2
import sys
response = urllib.urlopen('http://www.mitbbs.com/article_t/Programming/31190605.html')
content = response.read()
print content
type = sys.getfilesystemencoding()
print content.decode('gb2312').encode(type)

【在 d****e 的大作中提到】
: Check out FAQ: http://chardet.feedparser.org/docs/faq.html
: You should first respect the explicit encoding.The auto detection is
: inaccurate and non-standard.

avatar
h*e
11
Thanks very much for NIU's effort!!!
avatar
d*e
12
gzipped (maybe some of them based on your experience), you may use the gzip
module. You know what to do from there.
Good luck.
avatar
g*i
13
Thanks for the work.
avatar
g*e
14
问题解决了,谢谢大牛,包子奉上

gzip

【在 d****e 的大作中提到】
: gzipped (maybe some of them based on your experience), you may use the gzip
: module. You know what to do from there.
: Good luck.

avatar
H*2
15
如果你学不会感激别人为大家(包括你)花费的时间精力,那你至少要学会不要引发众
怒。P838也是为人为己做着事情的,他有一个club,你可以去加入。
我中午看见你发的另外几个帖子--更愿意相信(或者说希望)你只是闲得无聊在这儿灌
水。

【在 y*******y 的大作中提到】
: 这叫做了什么工作呀?
: 什么都没有. 要数据?不如让P838 去要..

avatar
C*s
16
Thank you all and support NIU.
avatar
y*7
17
感谢NIU做的工作。不管怎么说,至少你们站出来了,去做了事情。
avatar
s*a
18
thanks for the update
avatar
a*e
19
Thanks for the efforts!
avatar
b*e
20
Support!
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。