サイドバーの情報をターミナルに出力する
Webのサイドバーの情報をスクレイピングする必要があったので、作ってみた。 requests、beautifulsoupとStackoverflowから拝借。。
import requests from bs4 import BeautifulSoup import pprint class MyPrettyPrinter(pprint.PrettyPrinter): def format(self, object, context, maxlevels, level): if isinstance(object, unicode): return (object.encode('utf8'), True, False) return pprint.PrettyPrinter.format( self, object, context, maxlevels, level) top_level_url = "[url名]" r = requests.get(top_level_url) soup = BeautifulSoup(r.text.encode(r.encoding), "lxml") checklist = soup.find(id='[id名]').find_all('li') data = dict() f = '' for li in checklist: word = li.span.text order = int(li.input.get('[属性1]')) flag = li.input.get('属性2') f = data.setdefault(flag, dict()) f = data[flag].setdefault(order, word) MyPrettyPrinter().pprint(data)