使用一些其他的庫(kù)摆碉,例如Requests洒放,urllib等都會(huì)涉及到模擬登陸的問(wèn)題弛车。在這里貼出scrapy框架官方給出的代碼齐媒,以供學(xué)習(xí)。
import scrapy # 引入scrapy框架
class LoginSpider(scrapy.Spider):
name = 'example.com'
start_urls = ['http://www.example.com/users/login.php']
def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formdata={'username': 'john', 'password': 'secret'},
# 構(gòu)建用戶名和密碼的字典數(shù)據(jù)formdata
callback=self.after_login
# 設(shè)置回調(diào)函數(shù)
)
def after_login(self, response):
# check login succeed before going on
if "authentication failed" in response.body:
# 如果登錄失敗纷跛,則在日志中以ERROR的形式提醒
self.log("Login failed", level=scrapy.log.ERROR)
return
# continue scraping with authenticated session...
# 進(jìn)行下一步操作
僅供參考學(xué)習(xí)喻括。重點(diǎn)是先構(gòu)建用戶名和密碼的formdata字典數(shù)據(jù),然后使用FormRequest來(lái)請(qǐng)求贫奠。