使用python读取网页但出现问号而不是撇号

时间:2012-12-19 10:47:10

标签: python webpage

您好我正在尝试从http://services.runescape.com/m=news/recruit-a-friend-for-free-membership-and-xp包含链接获取所有内容,但不是其他一些内容。我目前所做的是:

import urllib
url = "http://services.runescape.com/m=news/recruit-a-friend-for-free-membership-and-xp"
a = urllib.urlopen(url).read()
b = a.split("<div class=\"Content\">")[1]
c = b.split("</div>")[0]
print c

打印:http://pastebin.com/WFXGpvRu

我一直在做很多replace()来删除一些内容,例如删除<p> s(我不想要)并更改{ {1}}到''(那是两个撇号)。

但我遇到的问题是问号。如果应该是撇号,则会出现问号。我不能只做一个<b>,因为那里应该有问号而不应该是撇号。

有没有更简单的方法来完成我所做的一切?

2 个答案:

答案 0 :(得分:2)

这些撇号不是常规ASCII引号,而是WINDOWS-1252单引号。它们在打印时显示为问号,因为c是需要解码的“str”(二进制字符串)。

最后做这个额外的步骤:

d = c.decode("windows-1252")
print d

d现在是一个包含所需文本的unicode对象。

答案 1 :(得分:2)

使用字符串操作解析HTML通常不是一个值得推荐的想法。有各种python库可以帮助您解析HTML:

查看BeautifulSouphere,有一个简单的教程)或Scrapy