python scrapy实现模拟登录功能

  介绍

本篇内容介绍了“python scrapy实现模拟登录功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

<强> 1,请求模块。直接携带饼干请求页面。

找到url,发送帖子请求存储饼干。

<强> 2,硒(浏览器自动处理cookie)。

找到相应的输入标签,输入文本,点击登录。

<强> 3,scrapy直接带饼干。

找到url,发送帖子请求存储饼干。

#, - *安康;编码:utf-8  - * -   import  scrapy   import 再保险   ,   class  GithubLoginSpider (scrapy.Spider):   ,,,name =, & # 39; github_login& # 39;   ,,,allowed_domains =, (& # 39; github.com& # 39;】   ,,,start_urls =, (& # 39; https://github.com/login& # 39;)   ,   ,,,def 解析(自我,,反应):,#,发送帖子请求获取饼干   ,,,,,,,authenticity_token =, response.xpath(& # 39;//输入[@ name=癮uthenticity_token"]/@ value # 39;) .extract_first ()   ,,,,,,,utf8 =, response.xpath(& # 39;//输入[@ name=皍tf8"]/@ value # 39;) .extract_first ()   ,,,,,,,commit =, response.xpath(& # 39;//输入[@ name=癱ommit"]/@ value # 39;) .extract_first ()   ,,,,,,,form_data =, {   ,,,,,,,,,,,& # 39;登录# 39;:,& # 39;pengjunlee@163.com& # 39;   ,,,,,,,,,,,& # 39;密码# 39;:,& # 39;123456 & # 39;   ,,,,,,,,,,,& # 39;webauthn-support& # 39;:, & # 39;支持# 39;   ,,,,,,,,,,,& # 39;authenticity_token& # 39;:, authenticity_token,   ,,,,,,,,,,,& # 39;use utf8 # 39;:, use utf8,   ,,,,,,,,,,,& # 39;提交# 39;:,提交}   ,,,,,,,油品收率scrapy.FormRequest (“https://github.com/session",, formdata=https://www.yisu.com/zixun/form_data,回调=self.after_login)      def after_login(自我、响应):#验证是否请求成功   (重新打印。findall('学习Git和GitHub没有任何代码!’,response.body.decode ()))

知识点扩展:

parse_login方法是提交完表单后回调函数回调函数指定要执行的方法,为了验证是否成功。这里我们直接在响应中搜索欢迎刘这个字眼就证明登录成功。

这个好理解,重点是收益率从超级().start_resquests(),这个代表着如果一旦登录成功后,就直接带着登录成功后Cookie值,方法start_urls里面的地址。

这样的话登录成功后的反应可以直接在解析里面写。

#, - *安康;编码:,utf-8  - * -   import  scrapy   得到scrapy  import  FormRequest,请求         class  ExampleLoginSpider (scrapy.Spider):   ,,,name =,“login_"   ,,,allowed_domains =, (“example.webscraping.com")   ,,,start_urls =, (& # 39; http://example.webscraping.com/user/profile& # 39;)   ,,,login_url =, & # 39; http://example.webscraping.com/places/default/user/login& # 39;      ,,,def 解析(自我,,反应):   ,,,,,,,印刷(response.text)      ,,,def  start_requests(自我):   ,,,,,,,油品收率scrapy.Request (self.login_url,回调=self.login)      ,,,def 登录(自我,反应):   ,,,,,,,formdata =, {   ,,,,,,,,,,,& # 39;电子邮件# 39;:& # 39;liushuo@webscraping.com& # 39;, & # 39;密码# 39;:& # 39;12345678 & # 39;}   ,,,,,,,油品收率FormRequest.from_response(响应,formdata=https://www.yisu.com/zixun/formdata   回调=self.parse_login)   def parse_login(自我,反应):   #打印(“>>>>”+ response.text)   如果response.text“欢迎刘”:   .start_requests收益率从super () ()

python scrapy实现模拟登录功能