2012-06-03 36 views
0
<a href="http://www.chrisstucchio.com/blog/2012/bandit_algorithms_vs_ab.html">Why Multi-armed Bandit algorithms are superior to A/B testing (with Math)</a>, <a href="user?id=yummyfajitas">yummyfajitas</a>, <a href="item?id=4060658">11 comments</a>, 

如何通过有上面写HTML作为内容的HTML页面凑和获取数据出来是这样的:如何在Python中使用美丽的汤来刮这个?

link = http://www.chrisstucchio.com/blog/2012/bandit_algorithms_vs_ab.html 
text = Why Multi-armed Bandit algorithms are superior to A/B testing (with Math) 
user_id = yummyfajitas 
item_id = 4060658 

回答

1

如果每次都在这以相同的顺序:

html = r'<a href="http://www.chrisstucchio.com/blog/2012/bandit_algorithms_vs_ab.html">Why Multi-armed Bandit algorithms are superior to A/B testing (with Math)</a>, <a href="user?id=yummyfajitas">yummyfajitas</a>, <a href="item?id=4060658">11 comments</a>, ' 

from BeautifulSoup import BeautifulSoup 

soup = BeautifulSoup(html) #sort the html 
bowl = soup.findAll('a') #find all links in the html 

link = bowl[0]['href'] #find the first 'a' tags href 
text = bowl[0].contents[0] #find the first tags url 
user_id = bowl[1]['href'].split('?id=')[1] #split on '?id=' and take the second value. could be [-1] too 
item_id = bowl[2]['href'].split('?id=')[1] 

print 'link:', link 
print 'text:', text 
print 'user_id:', user_id 
print 'item_id:', item_id