scrapy 登录

简介: 说明:本文参考了官网文档,以及stackoverflow的几个问题注意:下面这个爬虫不能实际运行!我只是用它来展示登录,以及之后如何处理。方式一:FormRequestimport scrapyfrom myprojct.

说明
本文参考了官网文档,以及stackoverflow的几个问题

注意
下面这个爬虫不能实际运行!我只是用它来展示登录,以及之后如何处理。

方式一:FormRequest

import scrapy

from myprojct.items import ExampleItem

class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ["example.com"]
    
    start_urls = [
        'http://www.example.com/articals/',
        'http://www.example.com/blogs/',
        'http://www.example.com/news/',
    ]

    # 先登录
    def start_requests(self):
        return [scrapy.FormRequest("http://www.example.com/login",
                                   formdata={'user': 'john', 'pass': 'secret'},
                                   callback=self.login_check)]
    
    # 检查登录。
    def login_check(self, response):
        if "Login failed" not in response.body: # 如果登录成功,则
            for url in self.start_urls:
                yield scrapy.Request(url, callback=self.parse_page)
    
    # 解析页面
    def parse_page(self, response):
        for tablerow in response.css('table.basictable tr'):
            item = ExampleItem()
            item["name"] = tablerow.xpath('td[1]').extract()
            item["handicap"] = tablerow.xpath('td[2]').extract()
            item["exact"] = tablerow.xpath('td[3]').extract()
            item["category"] = tablerow.xpath('td[4]').extract()
            yield item
        

方式二:FormRequest.from_response

import 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'},
            callback=self.after_login
        )

    def after_login(self, response):
        # check login succeed before going on
        if "authentication failed" in response.body:
            self.logger.error("Login failed")
            return

        # continue scraping with authenticated session...
目录
相关文章
|
5月前
|
Python
scrapy模拟登录
scrapy模拟登录
33 0
|
数据采集 存储 NoSQL
实现网页认证:使用Scrapy-Selenium处理登录
在网络爬虫的世界中,我们经常需要面对一些需要用户认证的网页,如登录、注册验证等。本文将介绍如何使用Scrapy-Selenium来处理这类网页,实现自动化登录和爬取。
294 0
实现网页认证:使用Scrapy-Selenium处理登录
|
数据采集 JSON API
Scrapy爬虫模拟登陆参考demo
Scrapy爬虫模拟登陆参考demo
|
数据采集 Web App开发 数据安全/隐私保护
为什么你用Scrapy 无法使用 Cookies登录
为什么你用Scrapy 无法使用 Cookies登录
89 0
|
Python
Scrapy使用MailSender发送邮件
Scrapy使用MailSender发送邮件
107 0
|
Python
scrapy拒绝访问
scrapy拒绝访问
52 0
scrapy拒绝访问
|
数据采集 前端开发 数据可视化
spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
655 0
spider-admin-pro 一个集爬虫Scrapy+Scrapyd爬虫项目查看 和 爬虫任务定时调度的可视化管理工具
|
数据采集 Web App开发 安全
第76天:Scrapy 模拟登陆
第76天:Scrapy 模拟登陆
133 0
第76天:Scrapy 模拟登陆
|
Web App开发 前端开发 Unix
Scrapy 如何正确配置、验证xpath?
[题记]:xpath难点 在使用scrapy做爬取网页的时候,规则的匹配是关键。如:sel.xpath(‘//ul[@id=”dirlist”]/li/dl/dt’)的正确配置。 如何进行xpath的正确配置呢? Scrapy shell交互终端是一个可供较快调试、验证配置结果的好工具。
217 0
Scrapy 如何正确配置、验证xpath?
|
数据采集 机器学习/深度学习 Web App开发
Crawler之Scrapy:Scrapy简介、安装、使用方法之详细攻略
Crawler之Scrapy:Scrapy简介、安装、使用方法之详细攻略
Crawler之Scrapy:Scrapy简介、安装、使用方法之详细攻略