BeautifulSoupを使用してHTMLツリーのセクションを検索する単純なPythonスクリプトがあります。たとえば、<div id="doctext">
タグ内のすべてを検索するために、スクリプトは次のようにします。
html_section = str(soup.find("div", id="doctext"))
find()
ただし、入力ファイルで指定された文字列に応じて、引数を変更できるようにしたいと思います。たとえば、ユーザーはスクリプトにURLの後に、のような文字列をフィードする"div", id="doctext"
と、スクリプトはそれに応じて検索結果を調整します。入力ファイルが次のようになっていると想像してください。
http://www.example.com | "div", id="doctext"
スクリプトは行を分割してURLを取得します。これは正常に機能しますが、引数も取得する必要があります。例えば:
vars = line.split(' | ')
html = urllib2.urlopen(vars[0]).read()
soup = BeautifulSoup(html)
args = vars[1].split()
html_section = str(soup.find(*args))
これは機能しません---そして私がこれを行うために複数の方法を試みてきたのでおそらく意味がありません。soup.find()
入力ファイルによって提供された文字列を取得し、関数の正しい構文に準備するにはどうすればよいですか?