2016-05-14 4 views
2

私はrobobrowserを使ってhtmlフォームをpython 3.4で削り取ろうとしています。私は、デフォルトのHTMLパーサを使用します。不適切なWebページ上のフォームを削る

self._browser = RoboBrowser(history=True, parser="html.parser") 

それは正しいWebページの正常に動作しますが、今、私は間違って書かれたページを解析する必要があります。

<form method="post" action="decide.php?act=submit_advance"> 
    <table class="td_advanced"> 
    <tr class="td_advance"> 
    <td colspan="4" class="td_advance"></strong><br></td> 
    <td colspan="3" class="td_left">Case sensitive:<br><br></td> 
    <td><input type="checkbox" name="case_sensitive" /><br><br></td> 
[...] 
</form> 

終値strongタグが正しくありません。ここではHTMLフラグメントです。

form = self._browser.get_form() 
print(form) 
>>> <RoboForm> 

任意の提案:このエラーは、この間違ったタグ以下の読みすべての入力からパーサを防ぎますか?

+0

を、それがrobobrowserのバグだ場合、あなたはgithubの上で問題を送信することができます。 https://github.com/jmcarp/robobrowser –

+0

私はbeautifulsoupがタグスープを扱うことになっていると思うので、それは考慮すべきオプションです。 –

答えて

0

私は解決策を自分で見つけました。 beautifulsoupに関するコメントは役に立ちましたし、私の検索を適切な方法で行いました。

解決策:別のhtmlパーサーを使用してください。私はlxmlで試してみました。

self._browser = RoboBrowser(history=True, parser="lxml") 

は、PyPIは、現在、私のPythonのバージョンで作業lxmlのインストーラを持っていないので、私はここからダウンロード:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

関連する問題