
这篇文章主要为大家介绍了如何用定值Cookie实现反爬示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
脚本之家 2023-04-06 05:58:29
用定值 Cookie 实现反爬 Cookie 生成由于本案例需要用到一个特定的 Cookie ,所以我们需要提前将其生成,你可以直接设置一个固定的字符串,也可以使用 Python 加密模块来加密一段文本,例如本案例加密 梦想橡皮擦。下面是一个示例代码,展示了如何使用 Python 的 ha...
博客详细清单,参考http://shouce.jb51.net/Python_jj/
【资料图】
本次案例,用定值 Cookie 实现反爬
由于本案例需要用到一个特定的 Cookie ,所以我们需要提前将其生成,你可以直接设置一个固定的字符串,也可以使用 Python 加密模块来加密一段文本,例如本案例加密梦想橡皮擦
。
下面是一个示例代码,展示了如何使用 Python 的hashlib
模块进行加密:
import hashlib # 要加密的文本 text = "梦想橡皮擦" # 使用 sha256 算法进行加密 encrypted_text = hashlib.sha256(text.encode()).hexdigest() print(encrypted_text)
在这个例子中,我们使用了hashlib
模块中的sha256
算法对文本进行加密。这个算法生成了一个长度为 64 位的十六进制哈希值,用于表示加密后的文本。
注意,这个算法只能用于加密文本,而不能用于解密。因此,一旦文本被加密,就无法恢复成原来的文本,即不可逆加密/单项加密。
在 Python 的 Flask 框架中,可以使用make_response
函数和set_cookie
方法来生成一个 Cookie。
例如,下面的代码片段展示了如何在 Flask 中设置一个名为story
的 Cookie,并将它的值设为前文建立的加密串。
from flask import Flask, make_response app = Flask(__name__) @app.route("/") def index(): resp = make_response("Setting a cookie") encrypted_text = hashlib.sha256(text.encode()).hexdigest() resp.set_cookie("story", encrypted_text) return resp
在这个例子中,我们使用make_response()
函数创建了一个响应对象,然后使用set_cookie()
方法来设置 cookie。最后,我们将响应对象返回给客户端。
注意,上面的代码仅创建了一个简单的 Cookie,它只有名称和值两个部分。你还可以使用其他可选参数来设置 Cookie 的其他属性,例如过期时间、域名等。
接下来为大家在补充一下make_response()
相关知识。
在 Flask 中,你可以使用make_response()
函数和模板系统来生成带有模板的响应。
下面是一个示例代码,展示了如何使用make_response()
函数加载模板:
from flask import Flask, make_response, render_template app = Flask(__name__) @app.route("/") def index(): # 加载模板并渲染 rendered_template = render_template("index.html", title="梦想橡皮擦") # 使用 make_response 函数创建响应 resp = make_response(rendered_template) return resp
在这个例子中,我们首先使用 Flask 的render_template()
函数加载并渲染了名为index.html
的模板。然后我们使用make_response()
函数创建了一个响应对象,并将渲染后的模板作为响应的内容。最后,我们返回了这个响应对象给客户端。
注意,你需要在 Flask 应用的模板目录中存在名为index.html的模板文件,才能正常使用上述代码。
然后我们将该视图函数补充完整,代码在app/routes.py
文件中。
@app.route("/") @app.route("/index") def index(): item = { "msg": "后台传递信息" } # 访问首页生成一个 Cookie 值,该值用于访问特定页面 rendered_template = render_template("index.html", title="梦想橡皮擦") resp = make_response(rendered_template) text = "梦想橡皮擦" # 使用 sha256 算法进行加密 encrypted_text = hashlib.sha256(text.encode()).hexdigest() resp.set_cookie("story", encrypted_text) return resp
此时当我们访问爬虫训练场首页的时候,就会在 Cookie 中写入一个加密之后的字符串。
通过开发者工具,可以查看到响应头。
最后一步,就是在 Python Flask 框架中判断刚刚的 Cookie 值,如果存在则响应数据,否则返回 403。
在 Python 的 Flask 框架中,你可以使用request.cookies
属性来判断指定的 Cookie 是否存在。
例如,下面的代码片段展示了如何判断一个名为story
的 Cookie 是否存在:
from flask import Flask, request app = Flask(__name__) @app.route("/") def index(): if "story" in request.cookies: # 如果存在 "story" cookie,则执行相应操作 # ... else: # 如果不存在 "story" cookie,则执行相应操作 # ...
将代码补充完整,文件是app/antispider/index.py
。
@antispider.route("/cookie_demo") def cookie_demo(): if "story" in request.cookies: # 如果存在 "story" cookie,则执行相应操作 # ... return render_template("antispider/cookie_demo.html") else: return "没有权限", 403
在 Python 的 Flask 框架中,除了使用set_cookie()
方法设置 cookie 以外,还有其他几种操作 cookie 的方法。
下面是一些常用的操作 cookie 的方法:
设置 cookie 的值:你可以使用set_cookie()
方法来设置 cookie 的值。例如:
from flask import Flask, make_response app = Flask(__name__) @app.route("/") def index(): resp = make_response("Setting a cookie") resp.set_cookie("user", "xiangpica") return resp获取 cookie 的值:你可以使用
request.cookies
字典来获取 cookie 的值。例如:
from flask import Flask, request app = Flask(__name__) @app.route("/") def index(): user = request.cookies.get("user") return user删除 cookie:你可以使用
set_cookie()
方法并将 cookie 的过期时间设为过去的时间来删除 cookie。例如:
from flask import Flask, make_response app = Flask(__name__) @app.route("/") def index(): resp = make_response("Deleting a cookie") resp.set_cookie("user", "", expires=0) return resp
本案例到此结束,已更新到爬虫训练场欢迎大家访问学习。
项目同步到代码仓库https://gitcode.net/hihell/spider_playground
以上就是如何用定值 Cookie 实现反爬详解的详细内容,更多关于定值Cookie实现反爬的资料请关注脚本之家其它相关文章!
这篇文章主要为大家介绍了如何用定值Cookie实现反爬示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
去年德国联邦反垄断局已裁定,谷歌母公司、Meta和亚马逊都属于对市场竞争至关重要的公司,对于这种地位的公司,该机构可以禁止其反竞争行为。
王铎,关于王铎介绍这个很多人还不知道,我们一起来看看!1、王铎,男,汉族。2、生于1971年11月,陕西洋县人,毕业于西安理工大学。3、陕西理
女子称使用化妆品后流产送检发现:汞含量超标30万倍!
铜是最早被人类利用的金属之一,现在,铜仍是现代工业中最重要的材料。我国是世界上主要的铜资源生产国和消费国。遗憾的是,尽管我国地大物博
相信有过买房经历的大部分人都知道按揭的概念,但是对于没接触过这些的年轻人来说这确是一个“生僻词”,那么下面小编就来给大家说说按揭是什
据李微敖爆料,张继科与债主在境外赌场相识,而这一点刚好与早年间粉丝晒出的张继科行程图对应。而据李微敖爆料,张继科存在上百万的债务纠纷
AI绘画在室内设计领域的应用正在成为一种趋势,并且已经对行业产生了一定的影响。**快速可视化**:通过AI绘画技术,设计师可以更快速地将他们
1、方向一:论坛:慧聪,阿百里,站长,落伍者,分类信息网:百姓网,58,赶集网方向二:可以试试收藏夹,百度知道,天涯问答
爱旭股份公告下属子公司浙江爱旭于近日与珠海通沛股权投资管理合伙企业有限合伙签署了《杭州鋆鹿股权投资合伙企业有限合伙合伙协议》浙江爱旭
他还表示,因涉及多方利益,针对“北溪”管道遭破坏的行径仍需要进行公开透明的国际调查
1、在选择媳妇的时候,要考虑婆媳关系的处理2、树立权威,做一家之主。3、公平地比赛4、对婆婆、公公等媳妇家的老人要孝敬。5、不要说闲话6、
1、人心险恶不能和自以为很了不起,很能干放在一起,这只能表示自大而已。2、别扯远了;人心险恶是指奸诈、狡猾,心思难测,常
1、冰箱保鲜。油菜可以放冰箱保存,但要注意油菜不能带有多余水分,否则易导致油菜腐烂。将油菜的水分弄掉后放入冰箱保鲜可保存3天。放冰箱保
抄写作文网小编为大家提供读后感1600字读后感600字来供大家参考,欢迎阅读。《不抱怨的世界》读后感-读后感1600字怀着好奇的心情,我翻开了《