这次记录一下GET和POST传参的姿势。
这次传参为了直观看出结果,本地打了一个flask框架的网站,这里简单介绍下flask框架,不想了解可以跳过这里,毕竟这里是记录爬虫学习。
flask框架所有的flask都有程序实例,修饰器路由,启动服务器。
from flask import Flask,request
app = Flask(__name__) #程序实例
print(__name__)
@app.route('/') #修饰器
def index(): #路由
name = request.args.get('name') #这里是用GET方式传参name = xxx
return 'Hello,%s!' % name #返回Hello,xxx!
if __name__=='__main__': #启动服务器
app.run()
大体知道了flask框架,这里如果通过get传入name=xxx参数后即返回Hello,xxx!这里运行一下
运行之后
GET方式传参
可以看到在本地http://127.0.0.1:5000/里运行。爬虫url就设置成这个,然后get方式传参即在url后面加个?即可实现url = "http://127.0.0.1:5000/"
res = requests.get(url+"?name=ico") #requests.get
print(res.text) #打印源码
这里传入name=ico
运行之后
可以看到传入成功。
POST方式传参
这里也需要把flask框架的路由改一下,改成接收post传参@app.route('/',methods=['GET','POST'])
def index():
name = request.form.get('name') #这里用requests.form接收post,方式还是name=xxx
return "Hello,%s!" % name #还是返回Hello,xxx!
post相比get就要麻烦很多要先设置个name
name = {"name":"ico"}
res = requests.post(url,data=name) #利用requests.post传参
print(res.text) #打印源码
运行之后
和刚才一样。
这里我们玩一下,传入很多参数,毕竟跑脚本嘛
传大量参数
这里用到for循环,传入0-9。先试试post。for i in range(10):
name={"name":i}
res = requests.post(url,data=name)
print(res.content)
运行之后
再试试getfor i in range(10):
res=requests.get(url+"?name="+i)
print(res.content)
一样的结果。
如果想传其他开始创个表,弄就完事了,例如classmates=['ico','Asuna','krrito']
for i in classmates:
data={"name":i}
res = requests.post(url,data=data)
print(res.content)
运行之后
爬虫实在是太好玩了,下次记录下爬取网站特定东西,例如爬取b站动画区排行榜标题,不知道b站有没有反爬的东西,有的话我就没办法了,毕竟还是萌新。
大佬轻喷,如果有什么建议欢迎评论区提出
本文介绍了Python爬虫中GET和POST方式传递参数的基本操作,通过搭建本地Flask框架进行演示。首先讲解了GET方式通过URL附加参数实现请求,然后转向POST方式,展示如何使用requests库发送POST请求。文章还展示了如何通过循环批量传递参数,并提到爬虫应用的可能性,如抓取网站数据。

被折叠的 条评论
为什么被折叠?



