Python の機械化、URL によるリンクの追跡、nr パラメータとは何ですか? 質問する

Python の機械化、URL によるリンクの追跡、nr パラメータとは何ですか? 質問する

このような質問をしなければならないのは申し訳ないのですが、Python の mechanize ドキュメントは本当に不足しているようで、理解できません。リンクをたどると、1 つの例しか見つかりません。

response1 = br.follow_link(text_regex=r"cheese\s*shop", nr=1)

しかし、正規表現は使いたくありません。URL に基づいてリンクをたどりたいだけです。どうすればいいでしょうか。また、リンクをたどるために時々使用される「nr」とは何ですか?

情報があればよろしくお願いします

ベストアンサー1

br.follow_linkLinkオブジェクトまたはキーワード引数 (など) のいずれかを取りますnr=0

br.links()すべてのリンクをリストします。

br.links(url_regex='...')正規表現に一致する URL を持つすべてのリンクを一覧表示します。

br.links(text_regex='...')リンク テキストが正規表現に一致するすべてのリンクを一覧表示します。

br.follow_link(nr=num)numページ上の 番目のリンクをたどります。カウントは 0 から始まります。レスポンス オブジェクト (br.open(...) が返すものと同じ種類) を返します。

br.find_link(url='...')指定された URL と完全に一致するLinkオブジェクトを返します。url

br.find_link、、br.linksはすべて同じキーワードを受け入れます。 を実行して、br.follow_linkそれらのキーワードに関するドキュメントを参照してください。br.click_linkhelp(br.find_link)

編集:フォローしたいターゲット URL がある場合は、次のようにします。

import mechanize
br = mechanize.Browser()
response=br.open("http://www.example.com/")
target_url='http://www.rfc-editor.org/rfc/rfc2606.txt'
for link in br.links():
    print(link)
    # Link(base_url='http://www.example.com/', url='http://www.rfc-editor.org/rfc/rfc2606.txt', text='RFC 2606', tag='a', attrs=[('href', 'http://www.rfc-editor.org/rfc/rfc2606.txt')])
    print(link.url)
    # http://www.rfc-editor.org/rfc/rfc2606.txt
    if link.url == target_url:
        print('match found')
        # match found            
        break

br.follow_link(link)   # link still holds the last value it had in the loop
print(br.geturl())
# http://www.rfc-editor.org/rfc/rfc2606.txt

おすすめ記事