我想测试一下 网站的post get功能,但是对网站基本上是小学生
网站空间要怎么搭建才可以接受get post? 需要什么环境?
请问你是想测试后端接口还是测试前端页面?
如果是想测试接口的get post请求,可以使用postman工具
get:从指定的资源请求数据。 请注意,查询字符串(名称/值对)是在get请求在Url中发送的
post: 向指定的资源提交被处理的数据 请注意,查询字符串(名称/值对)是在post请求的HTTP消息主体中发送的
Python爬虫中的Get和Post方法
HTTP中GET与POST之间的区别
要在网站上进行post和get请求的测试,可以使用Python的requests库来发送这些请求。在发送请求前,要先了解请求的URL、请求头和请求参数等。对于post请求,还需要了解请求体中要提交的数据格式。具体步骤如下:
导入requests库和其他需要的库(例如lxml、MySQLdb等)。
构造请求的URL,如果需要发送请求参数,则将参数组织成字典或字符串形式,例如{'key1': 'value1', 'key2': 'value2'}或'key1=value1&key2=value2'。
如果需要在请求头中添加信息,例如User-Agent、Cookie等,则将信息组织成字典形式,例如{'User-Agent': 'Mozilla/5.0', 'Cookie': 'xxx'}。
对于post请求,还需要构造请求体。根据具体的情况来确定请求体的格式和内容。例如,如果需要提交表单数据,则可以使用字典或元组形式,例如{'username': 'tom', 'password': '123456'}或(('username', 'tom'), ('password', '123456'))。
使用requests库的get或post方法发送请求,并将响应结果存储下来,例如response = requests.get(url, headers=headers, params=params)或response = requests.post(url, headers=headers, data=data)。
对响应结果进行处理。例如,可以将响应结果解析成JSON格式或HTML格式,然后从中提取所需的数据。
可以将获取到的数据保存到本地文件或数据库中。
需要注意的是,发送请求前要确保请求的URL和请求参数都是正确的,否则可能会出现请求失败或获取到错误数据的情况。
下面是一段使用requests库从知乎专栏爬取文章并将数据存入MySQL数据库的示例代码,供参考:
import requests
from lxml import etree
import MySQLdb
conn = MySQLdb.connect(
user = 'root',
password = '123456',
host = 'localhost',
db = 'spider',
charset = 'utf8',
port = 3306
)
cursor = conn.cursor()
url = 'https://zhuanlan.zhihu.com/api/recommendations/columns?limit=200&offset=0'
headers = {'cookie': '_zap=f092cdcc-4278-44d3-b29d-da3fc28eaa66; _xsrf=R4iF43mZlYxCoqegJS8rHNJG49iMaO9J; d_c0="AGAZ6gs-pRCPTuJB6zc5XZ1R4LwViDxtKsk=|1578747134"; capsion_ticket="2|1:0|10:1578792144|14:capsion_ticket|44:ZDk4MmQ0MDQyOGExNDRjYThhZWMyZjk3MzJiZGVlOTA=|51c98794abaa756f4960896970098d77c9ce4e071745b3807edb3d9289df8f98"; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1578747134,1578747151,1578791652,1578792161; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1578794724; KLBRSID=cdfcc1d45d024a211bb7144f66bda2cf|1578794725|1578791651',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'
}
resp = requests.get(url=url, headers=headers).json()
for i in resp['data']: # 所有专栏
try:
column_url = i['url']
column_key = column_url.split('.com/')[1]
column_url = 'https://zhuanlan.zhihu.com/api/columns/'+ column_key +'/articles?include=data%5B*%5D.admin_closed_comment%2Ccomment_count%2Csuggest_edit%2Cis_title_image_full_screen%2Ccan_comment%2Cupvoted_followees%2Ccan_open_tipjar%2Ccan_tip%2Cvoteup_count%2Cvoting%2Ctopics%2Creview_info%2Cauthor.is_following%2Cis_labeled%2Clabel_info&limit=100&offset=0'
resp = requests.get(url=column_url, headers=headers).json() # 当前专栏下的所有文章
for j in resp['data']: # 遍历取出当前专栏下的所有文章标题和url
title = j['title']
article_url = j['url']
resp = requests.get(url=article_url, headers=headers).text
html = etree.HTML(resp)
column_name = html.xpath('//a[@class="ColumnLink ColumnPageHeader-TitleColumn"]/text()')[0]
content_list = html.xpath('//div[@class="RichText ztext Post-RichText"]//text()')
content = ''
for k in content_list:
content += k
sql = 'insert into zhihu_zhuanlan(column_title, article_title, content) values(%s, %s, %s)'
rows = cursor.execute(sql, [column_name, title, content])
if rows:
conn.commit()
print('成功存入数据库')
except:
print('出错了')
continue