モジュール:wrap.py を作ってみた.
# -*- coding:utf-8 -*- import BeautifulSoup import re import urllib2 import sys from html5lib import HTMLParser,treebuilders #urlを開く関数 def open_url(html): opener = urllib2.build_opener()#クライアントを作成 opener.addheaders = [('User-Agent','Mozilla/5.0(Windows; U; Windows NT 5.1; ja; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6')] return opener.open(html).read() #beautifulsoupでエラーを吐いたときhtml5libを利用. #インスタンスsoupを返す def get_soup(source): try: soup = BeautifulSoup.BeautifulSoup(source) except: parser = HTMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup")) soup = parser.parse(source) return soup class GetSoup(object): def __init__(self,url): self.url = url self.tree = get_soup(open_url(self.url))
これで別のファイル(同じ階層)から下のようにアクセスすれば
import wrap url = "http://search.yahoo.co.jp/search?p=" query = "日本語" print wrap.GetSoup(url+query)
Yahoo!の「日本語」の検索結果をHTMLの形式で表示させることが出来る.