Python 请求:选择登录表单



我一直在使用机械化成功抓取网站,但是我在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功能。有人有任何想法或经验吗?

如果我没记错的话,Selenium类似于Mechanize,但不是Requests。请求主要用于HTTP。请求类似于urllib或urllib2,但它更好。您可以发送请求(GET或POST)并从服务器读取html文件,但您需要其他模块来获取页面上的一些元素 - BeautifulSoup,lxml,pyQuery

最新更新