使い方を調べて、ついでにとあるCD買ったページで結局何枚買ったかソートするコードを書いてみた。
ちょーいいかげんなコードだけど、こんなのでも簡単にかけた。
import re if __name__ == "__main__": from bs4 import BeautifulSoup f = open('5th-cd.html', 'r') soup = BeautifulSoup(f) soup.unicode part_tr = soup.find('table', attrs={'summary': u'ご注文商品'}) part_tr2 = part_tr.find_parent().find_parent().find_parent() events = [] for num, cd in zip(part_tr2.find_all('th', recursive=True), part_tr2.find_all('td', recursive=True)): if re.search(u'点', unicode(num.text)): try: artist, title1, title2, title3, event_day, event_hall, event_sch, member, extra = cd.text.strip().split() event_day = event_day.strip(u'※') except ValueError: continue #数があわないのは商品でない cd_amount = num.text.strip().strip(u'点') try: events.append(u"%s, %s, %s, %s, %s" % (event_day, event_sch, member, event_hall, cd_amount)) except IndexError: continue # 商品以外もテーブルで抜くので一致しないことがある except NameError: continue del cd_amount events.sort() for event in events: print event