如果我想抓取一个需要先使用密码登录的网站,我该如何开始使用 Python 使用 beautifulsoup4 库来抓取它?以下是我为不需要登录的网站所做的。
from bs4 import BeautifulSoup
import urllib2
url = urllib2.urlopen("http://www.python.org")
content = url.read()
soup = BeautifulSoup(content)
应如何更改代码以适应登录?假设我要抓取的网站是一个需要登录的论坛。一个例子是 http://forum.arduino.cc/index.php
最佳答案
你可以使用机械化:
import mechanize
from bs4 import BeautifulSoup
import urllib2
import cookielib ## http.cookiejar in python3
cj = cookielib.CookieJar()
br = mechanize.Browser()
br.set_cookiejar(cj)
br.open("https://id.arduino.cc/auth/login/")
br.select_form(nr=0)
br.form['username'] = 'username'
br.form['password'] = 'password.'
br.submit()
print br.response().read()
或 urllib - Login to website using urllib2
关于python - 如何使用python和beautifulsoup抓取需要登录的网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23102833/