吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2477|回复: 6
收起左侧

[Python 转载] scrapy起点模拟登录

[复制链接]
楚子沦i 发表于 2021-8-2 15:42
许多网站的内容如果不登录是没办法查看的,比如说起点--我的书架,如果不登录就没办法产看,当然,不要问我为什么要看起点的书架。

我们将页面保持在书架页面然后打开开发者工具(f12)之后点击network按f5刷新,会有一个bookcase的请求。
image.png
然后我们点击右面就会发现我们的cookie了。


而我们如何通过python获取cookie呢?
第一个方法就是通过页面然后自己创建一个字典出来。
第二个就是通过一个python的库。
       1.browsercookie
       2.pycryptodome  依赖

然后我们import browsercookie即可。

但是在使用cookies = browsercookie.chrome()获取cookie的时候,会出现各种错误,一般来说都是因为谷歌浏览器版本过高导致。我们可以先卸载掉自己的高版本浏览器,安装一个低版本的。https://zjzdmc.top/jsfx/216.html

参考这篇文章,可以知道最佳的谷歌版本是75.0.3770我们去百度下载即可。

[Python] 纯文本查看 复制代码
#coding:utf-8
from scrapy import Request
from scrapy.spiders import Spider
from qidiancookie.items import QidiancookieItem
import browsercookie
class QidianCookieSpider(Spider):
    name = "qidian"
    def __init__(self):
        cookies = browsercookie.chrome()
        self.cookie_dir = {}
        for cookie in cookies:
            if cookie.domain == ".qidian.com":
                if cookie.name in ["_csrfToken",
                                   "_ga",
                                   "_ga_FZMMH98S83",
                                   "_ga_PFYW0QLV3P",
                                   "_gid",
                                   "e1",
                                   "e2",
                                   "newstatisticUUID",
                                   "ywguid",
                                   "ywkey",
                                   "ywopenid"]:
                    self.cookie_dir[cookie.name]=cookie.value

    def start_requests(self):
        url = "https://my.qidian.com/bookcase"


        yield Request(url,cookies=self.cookie_dir)
    def parse(self, response):
        item = QidiancookieItem()
        qdselector = response.xpath('//*[@id="shelfTable"]/tbody/tr')
        for one_selector in qdselector:
            name = one_selector.xpath("td[@class='col2']/span[@class='shelf-table-name']/b/a[last()]/text()").extract()[0]
            storytype = one_selector.xpath("td[@class='col2']/span[@class='shelf-table-name']/b/a[1]/text()").extract()[0]
            time = one_selector.xpath("td[@class='col3 font12']/text()").extract()[0]
            author = one_selector.xpath("td[@class='col4']/a/text()").extract()[0]
            item['name'] = name
            item['storytype'] = storytype
            item['time'] = time
            item['author'] = author

            yield item




然后就能获取我的书架的信息了,另外如果不想谷歌浏览器自动更新的话,可以在host里设置谷歌的更新链接。
取消谷歌的自动更新,在host文件中添加127.0.0.1 update.googleapis.com即可

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
我是天使 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Dozzm 发表于 2021-8-2 17:27
标题和内容并不一致啊。内容是获取已有cookie的方式,而不是标题所说的模拟登录。一般模拟登录是通过api或者selenium登录从而获取到cookie的。
18898589561 发表于 2021-8-2 19:07
明次 发表于 2021-8-2 21:23
 楼主| 楚子沦i 发表于 2021-8-3 08:55
Dozzm 发表于 2021-8-2 17:27
标题和内容并不一致啊。内容是获取已有cookie的方式,而不是标题所说的模拟登录。一般模拟登录是 ...

并非,模拟登录其实就是模拟用户登录而已。
通过获取cookie来进行登录,如果不获取cookie,那么该如何登录呢??
 楼主| 楚子沦i 发表于 2021-8-3 08:56
明次 发表于 2021-8-2 21:23
scrapy和request有啥区别啊

scrapy其实就是一个爬虫的框架而已。
QingYi. 发表于 2021-8-3 11:10
selenium登录 然后直接getCK保存到本地
下次直接读文件
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 13:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表