1

http://robobrowser.readthedocs.org/en/latest/readme.htmlは、美しいスープ ライブラリに基づく新しい Python ライブラリです。HTMLページを開いてdjangoアプリ内で返すことでテストしようとしていますが、この最も単純なタスクを実行する方法がわかりません。私のdjangoアプリには以下が含まれています:

def index(request):    

    p=str(request.POST.get('p', False)) # p='https://www.yahoo.com/'
    browser = RoboBrowser(history=True)
    browser.open(p)
    html = browser.find_all
    return HttpResponse(html)

出力されたhtmlを見ると、次のように表示されます。

<bound method BeautifulSoup.find_all of 
    <!DOCTYPE html>
    <html>
    ......................
        <head>
    ...............
        </body>
    </html>
>

キレイなスープバウンド法とは?どうすればストレートhtmlを取得できますか?

4

1 に答える 1

3

オブジェクトにバインドされたメソッド オブジェクトBeautifulSoupです。あなたはそれを呼びませんでした。

repr()HTML ソース文字列としてレンダリングされた単なるツリーである BeautifulSoup 解析ツリーが含まれているため、その表現は少し混乱しています。

基礎となる BeautifulSoup 解析ツリーに到達するには、次を使用できます。それをソース文字列に戻すために使用str()します。

html = str(browser.state.parsed)

requestsまたは、次の方法で元の応答オブジェクトにアクセスすることもできます。

browser.state.response

これは、元のダウンロードされた HTML が次のように検出されることを意味します。

html = browser.state.response.content
于 2014-05-01T18:49:01.440 に答える