zoukankan      html  css  js  c++  java
  • scray cookiejar

    参考:https://blog.csdn.net/u013210620/article/details/80283637

    手动操作cookie点赞

    # -*- coding: utf-8 -*-
    import scrapy
    from bs4 import BeautifulSoup
    from scrapy.selector import HtmlXPathSelector
    from scrapy.http import Request
    from ..items import XianglongItem
    from scrapy.http import HtmlResponse
    from scrapy.http.response.html import HtmlResponse
    
    
    class ChoutiSpider(scrapy.Spider):
        name = 'chouti'
        allowed_domains = ['chouti.com']
        start_urls = ['http://dig.chouti.com/',]
    
        cookie_dict = {}
        def start_requests(self):
            for url in self.start_urls:
                yield Request(url=url,callback=self.parse_index)
    
        def parse_index(self,response):
            # 原始cookie
            # print(response.headers.getlist('Set-Cookie'))
    
            # 解析后的cookie
            from scrapy.http.cookies import CookieJar
            cookie_jar = CookieJar()
            cookie_jar.extract_cookies(response, response.request)
            print("cookie_jar._cookies",cookie_jar._cookies)
            for k, v in cookie_jar._cookies.items():
                for i, j in v.items():
                    for m, n in j.items():
                        self.cookie_dict[m] = n.value
    
    
            req = Request(
                url='http://dig.chouti.com/login',
                method='POST',
                headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
                body='phone=xxx&password=xxx&oneMonth=1',
                cookies=self.cookie_dict,
                callback=self.parse_check_login
            )
            yield req
    
        def parse_check_login(self,response):
            print("parse_check_login",response.text)
            yield Request(
                url='https://dig.chouti.com/link/vote?linksId=19440976',
                method='POST',
                cookies=self.cookie_dict,
                callback=self.parse_show_result
            )
    
        def parse_show_result(self,response):
            print("parse_show_result",response.text)

    自动操作cookie点赞

    # -*- coding: utf-8 -*-
    import scrapy
    from scrapy.http import Request
    class ChoutiSpider(scrapy.Spider):
        name = 'chouti'
        allowed_domains = ['chouti.com']
        start_urls = ['http://dig.chouti.com/',]
    
        def start_requests(self):
            for url in self.start_urls:
                yield Request(url=url,callback=self.parse_index,meta={'cookiejar':True})
    
        def parse_index(self,response):
            req = Request(
                url='http://dig.chouti.com/login',
                method='POST',
                headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
                body='phone=8613121758648&password=woshiniba&oneMonth=1',
                callback=self.parse_check_login,
                meta={'cookiejar': True}
            )
            yield req
    
        def parse_check_login(self,response):
            # print(response.text)
            yield Request(
                url='https://dig.chouti.com/link/vote?linksId=19440976',
                method='POST',
                callback=self.parse_show_result,
                meta={'cookiejar': True}
            )
    
        def parse_show_result(self,response):
            print(response.text)
  • 相关阅读:
    swagger配置
    windows下安装redis
    Redis在windows下安装过程
    jenkins安装部署全过程
    MySQL表名不区分大小写的设置方法
    Linux常用命令
    java 执行redis的部分方法
    把jar包加入本地maven库内
    Java 枚举7常见种用法
    【转】每天一个linux命令(1):ls命令
  • 原文地址:https://www.cnblogs.com/testzcy/p/14772619.html
Copyright © 2011-2022 走看看