您好我正在尝试从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>
,因为那里应该有问号而不应该是撇号。
有没有更简单的方法来完成我所做的一切?
答案 0 :(得分:2)
这些撇号不是常规ASCII引号,而是WINDOWS-1252单引号。它们在打印时显示为问号,因为c是需要解码的“str”(二进制字符串)。
最后做这个额外的步骤:
d = c.decode("windows-1252")
print d
d现在是一个包含所需文本的unicode对象。
答案 1 :(得分:2)
使用字符串操作解析HTML通常不是一个值得推荐的想法。有各种python库可以帮助您解析HTML:
查看BeautifulSoup(here,有一个简单的教程)或Scrapy。