-1

mechanize を使用して Web サイトのスクレイピングに成功しましたが、page.open が動かなくなる (そしてタイムアウト エラーが発生しない) という問題が発生したので、リクエストで同じスクレイピングを試してみたいと思います。ただし、フォームを選択してログイン資格情報を入力する方法がわかりません。mechanize の作業コードは次のとおりです。

# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.set_proxies({"https": "198.102.28.100:7808", "http": "54.235.92.109:8080"})

# Open Login Page
br.open("https://example.com/login/Signin?")
br.select_form(name="signinForm_0")
br["loginEmail"] = "username"
br["loginPassword"] = 'password'
br.method = "POST"
br.submit()

#Open Page
URL = 'https://example.com'
br.open(URL, timeout=5.0)

Python Requets を使用して br.select_form 機能を複製する方法がわかりません。誰かがこれを行うアイデアや経験を持っていますか?

4

1 に答える 1

1

私が間違っていなければ、Seleniumは Mechanize に似ていますが、Requests には似ていません。リクエストは主に HTTP に使用されます。Requests はurllibまたはurllib2に似ていますが、より優れています。リクエスト(GETまたはPOST)を送信してサーバーからhtmlファイルを読み取ることができますが、ページ上の要素を取得するには他のモジュールが必要です- BeautifulSouplxmlpyQuery

于 2013-10-29T17:22:34.147 に答える