0

我需要通过一个 url 登录到一个站点(例如:'www.targetsite.com/login'),然后导航到另一个站点以抓取数据(例如:'www.targetsite.com/data')。这是因为网站会在您登录后自动将您定向到主页,无论您从哪个 url 开始访问该网站。

我正在使用 mechanize python 库(我知道,但它有一些我以后需要的功能,是一个很好的学习体验)。

我面临的问题是 cookiejar 似乎并没有像我想象的那样工作

import mechanize
import Cookie
import cookielib
cj = cookielib.LWPCookieJar()


br = mechanize.Browser()
br.set_cookiejar(cj)

###browser emulation
br.set_handle_robots(False)
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')]

###login
login_url = "https://targetsite.org/login"

br.open(login_url)
br.select_form(action="https://targetsite.org/wp-login.php?wpe-login=true")
br.form['log'] = 'login'
br.form['pwd'] = 'password
br.submit()

target_url = "https://targetsite.com/data"

br.open(target_url)


soup = BeautifulSoup(br.response().read())
body_tag = soup.body
all_paragraphs = soup.find_all('p')

print(body_tag.text)

奇怪的是,该站点似乎没有注册我的登录状态,而是将我的机制 br 重定向回登录屏幕。知道发生了什么吗?

4

0 回答 0