scrapy起点模拟登录
许多网站的内容如果不登录是没办法查看的,比如说起点--我的书架,如果不登录就没办法产看,当然,不要问我为什么要看起点的书架。我们将页面保持在书架页面然后打开开发者工具(f12)之后点击network按f5刷新,会有一个bookcase的请求。
然后我们点击右面就会发现我们的cookie了。
而我们如何通过python获取cookie呢?
第一个方法就是通过页面然后自己创建一个字典出来。
第二个就是通过一个python的库。
1.browsercookie
2.pycryptodome依赖
然后我们import browsercookie即可。
但是在使用cookies = browsercookie.chrome()获取cookie的时候,会出现各种错误,一般来说都是因为谷歌浏览器版本过高导致。我们可以先卸载掉自己的高版本浏览器,安装一个低版本的。https://zjzdmc.top/jsfx/216.html
参考这篇文章,可以知道最佳的谷歌版本是75.0.3770我们去百度下载即可。
#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.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/text()").extract()
storytype = one_selector.xpath("td[@class='col2']/span[@class='shelf-table-name']/b/a/text()").extract()
time = one_selector.xpath("td[@class='col3 font12']/text()").extract()
author = one_selector.xpath("td[@class='col4']/a/text()").extract()
item['name'] = name
item['storytype'] = storytype
item['time'] = time
item['author'] = author
yield item
然后就能获取我的书架的信息了,另外如果不想谷歌浏览器自动更新的话,可以在host里设置谷歌的更新链接。
取消谷歌的自动更新,在host文件中添加127.0.0.1 update.googleapis.com即可
标题和内容并不一致啊。内容是获取已有cookie的方式,而不是标题所说的模拟登录。{:1_907:}一般模拟登录是通过api或者selenium登录从而获取到cookie的。 我很赞同! scrapy和request有啥区别啊 Dozzm 发表于 2021-8-2 17:27
标题和内容并不一致啊。内容是获取已有cookie的方式,而不是标题所说的模拟登录。一般模拟登录是 ...
并非,模拟登录其实就是模拟用户登录而已。
通过获取cookie来进行登录,如果不获取cookie,那么该如何登录呢?? 明次 发表于 2021-8-2 21:23
scrapy和request有啥区别啊
scrapy其实就是一个爬虫的框架而已。 selenium登录 然后直接getCK保存到本地
下次直接读文件
页:
[1]