Walks

网络安全爱好者

Python3学习系列(十二):Scrapy表单登陆

《Python3学习系列(十二):Scrapy表单登陆》

前言:

下面给大家写一点表单登陆在Scrapy上面应用的知识点,内容不多,不多说了,看看代码应该就可以理解,在代码里面我会尽量给点注释


代码实现:

  • Login_Form.py

这里是对我自己的个人博客进行登录

# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request,FormRequest

class LoginFormSpider(scrapy.Spider):
    name = 'Login_Form'
    allowed_domains = ['bywalks.com']
    start_urls = ['http://www.bywalks.com/wp-admin/']

    def parse(self, response):
        content = response.xpath('//*[@id="comment-5"]/div/blockquote/p/text()').extract_first()
        print(content)


    #登陆
    login_url = 'http://www.bywalks.com/wp-login.php'
    
    #重写基类的start_requests方法,最先请求登陆页面
    def start_requests(self):
        yield Request(self.login_url,callback = self.login)

    def login(self,response):
        #我们只需要构建用户名和密码即可,因为from_response会把隐藏表单自动填写进去
        fd = {'log':'XXX','pwd':'XXX'}
        yield FormRequest.from_response(response,formdata = fd,callback = self.parse_login)

    def parse_login(self,response):
        #登陆成功后,爬取我们需要内容
        if "欢迎使用WordPress" in response.text:
            yield from super().start_requests()

  • Login_Form.py

# Obey robots.txt rules
#这里要改为False,就是不遵循robots.txt的规则,因为有些网站会不希望爬虫去爬网站的后台,所以添加了这个规则,如何爬虫看到了这个规则,就不会去爬取
ROBOTSTXT_OBEY = False

参考资料:《精通Scrapy网络爬虫》

转载请注明来自:www.bywalks.com

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

78 + = 82