我是Python的新手,正在玩一个非常基本的网络爬虫.例如,我做了一个简单的功能来加载显示在线游戏的高分的页面.所以我能够获得html页面的源代码,但我需要从该页面中绘制特定的数字.例如,网页如下所示:
http://hiscore.runescape.com/hiscorepersonal.ws?user1=bigdrizzle13
其中'bigdrizzle13'是链接的独特部分.需要绘制并返回该页面上的数字.从本质上讲,我想构建一个程序,我所要做的就是输入'bigdrizzle13'并输出这些数字.
正如另一张海报所提到的,BeautifulSoup是这项工作的绝佳工具.
这是整个夸张评论的程序.它可以使用很多容错,但只要您输入有效的用户名,它就会从相应的网页中提取所有分数.
我尽力发表评论.如果您对BeautifulSoup很感兴趣,我强烈建议您使用BeautifulSoup文档轻松完成我的示例.
整个计划......
from urllib2 import urlopen from BeautifulSoup import BeautifulSoup import sys URL = "http://hiscore.runescape.com/hiscorepersonal.ws?user1=" + sys.argv[1] # Grab page html, create BeatifulSoup object html = urlopen(URL).read() soup = BeautifulSoup(html) # Grab the
s
data = map(parse_string, row.findAll('td'))
# Skip the first td, which is an image
data = data[1:]
# Do something with the data...
print data
这是一个测试运行. > test.py bigdrizzle13 [u'Overall', u'87,417', u'1,784', u'78,772,017'] [u'Attack', u'140,903', u'88', u'4,509,031'] [u'Defence', u'123,057', u'85', u'3,449,751'] [u'Strength', u'325,883', u'84', u'3,057,628'] [u'Hitpoints', u'245,982', u'85', u'3,571,420'] [u'Ranged', u'583,645', u'71', u'856,428'] [u'Prayer', u'227,853', u'62', u'357,847'] [u'Magic', u'368,201', u'75', u'1,264,042'] [u'Cooking', u'34,754', u'99', u'13,192,745'] [u'Woodcutting', u'50,080', u'93', u'7,751,265'] [u'Fletching', u'53,269', u'99', u'13,051,939'] [u'Fishing', u'5,195', u'99', u'14,512,569'] [u'Firemaking', u'46,398', u'88', u'4,677,933'] [u'Crafting', u'328,268', u'62', u'343,143'] [u'Smithing', u'39,898', u'77', u'1,561,493'] [u'Mining', u'31,584', u'85', u'3,331,051'] [u'Herblore', u'247,149', u'52', u'135,215'] [u'Agility', u'225,869', u'60', u'276,753'] [u'Thieving', u'292,638', u'56', u'193,037'] [u'Slayer', u'113,245', u'73', u'998,607'] [u'Farming', u'204,608', u'51', u'115,507'] [u'Runecraft', u'38,369', u'71', u'880,789'] [u'Hunter', u'384,920', u'53', u'139,030'] [u'Construction', u'232,379', u'52', u'125,708'] [u'Summoning', u'87,236', u'64', u'419,086'] 瞧:) 推荐阅读
|