0

嗨,我正在尝试从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()'s 来删除一些东西,例如删除<p>s (我不想要)并更改<b>为 '' (那里有两个撇号)。

但我遇到的问题是问号。当应该有撇号时,会出现问号。我不能只做 areplace()因为那里有问号,应该在那里而不应该是撇号。

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

4

2 回答 2

2

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

最后做这个额外的步骤:

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

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

于 2012-12-19T10:58:44.603 回答
2

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

看看BeautifulSoup这里有一个简单的教程)或Scrapy

于 2012-12-19T11:13:15.283 回答