gpt4 book ai didi

python - 如何使用函数内的 Mechanize 包登录网站?

转载 作者:行者123 更新时间:2023-12-04 16:18:56 26 4
gpt4 key购买 nike

我正在使用 Mechanize 登录网站并用 beautifulsoap 抓取它。虽然我在不使用函数的情况下让它工作,但我不知道如何将登录功能放入一个函数中,然后在主程序中使用它。到目前为止,这是我无法运行的代码:

#!/usr/bin/env python

import http.cookiejar as cookielib
import mechanize
from bs4 import BeautifulSoup

def set_browser():
br = mechanize.Browser()
cookiejar = cookielib.LWPCookieJar()
br.set_cookiejar(cookiejar)
br.set_handle_equiv(True)
br.set_handle_gzip(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' )]
return br

def login(br):
br.open("https://example.com/login/index.php")
br.select_form(nr=0)
br.form['username'] = "admin"
br.form['password'] = "mypassword"
br.submit()

def scrape():
url = "https://example.com/content"
data = br.open(url).get_data()
soup = BeautifulSoup(data, 'html.parser')
with open("source.html", "w") as text_file:
print(soup.prettify(), file=text_file)

if __name__ == "__main__":
set_browser()
login(br)
scrape()
我希望有人可以帮助我如何编写正确的函数。在我上面的代码中,我写了两个函数 set_browser() 和 login() 但有两个函数并不重要;如果两者合二为一就好了,我只是把它分成两个来真正学习使用函数。

最佳答案

我认为当返回一个值时,你需要将它存储在某个地方然后在下一个函数中使用它,所以它应该像这样

def login(br):
br.open("https://example.com/login/index.php")
br.select_form(nr=0)
br.form['username'] = "admin"
br.form['password'] = "mypassword"
br.submit()

if __name__ == "__main__":
br = set_browser()
login(br)
scrape()

关于python - 如何使用函数内的 Mechanize 包登录网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64642317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com