GET请求
GET请求是一种HTTP方法,用于向服务器获取(或读取)数据。它是Web开发中最常用的请求方式之一。对于GET请求,客户端向服务器发送一个HTTP请求,服务器返回请求的资源。GET请求通常用于获取静态资源,比如HTML页面、图片、CSS文件等。GET请求可以通过URL参数传递数据,参数会附加在URL的末尾,例如:https://www.example.com/search?q=keyword
。
GET请求的特点是安全性较低,因为请求的参数是直接暴露在URL中,容易被拦截和篡改。因此,GET请求不适合传输敏感数据,如密码等。
方式一:使用quoto方法
from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import quote
args = input('请输入要搜索的内容:')
ua = UserAgent()
url = f'https://www.baidu.com/s?wd={quote(args)}'
headers = {
'User-Agent':ua.chrome
}
req = Request(url,headers=headers)
resp = urlopen(req)
print(resp.read().decode())
方式二:使用urlencode方法
from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import urlencode
args = input('请输入要搜索的内容:')
parms = {
'wd':args,
}
ua = UserAgent()
url = f'http://www.baidu.com/s?{urlencode(parms)}'
headers = {
'User-Agent':ua.chrome
}
req = Request(url,headers=headers)
resp = urlopen(req)
print(resp.read().decode())
案例:
使用get请求抓取某同城的二手车数据
from urllib.request import urlopen,Request
from fake_useragent import UserAgent
from urllib.parse import quote
args = input('请输入品牌,使用中文全拼格式:')
url =f'https://wz.58.com/{quote(args)}/'
headers = {
'User-Agent':UserAgent().chrome
}
req = Request(url,headers=headers)
resp = urlopen(req)
print(resp.read().decode())
执行结果:
POST请求
POST请求是一种HTTP请求方法,用于向服务器提交数据。与GET请求不同,POST请求的数据不会附加在URL中,而是作为请求的body部分进行发送。POST请求常用于向服务器提交表单数据、上传文件等操作。
from urllib.request import Request,urlopen
from fake_useragent import UserAgent
from urllib.parse import urlencode
url ='https://cn.bing.com/search'
headers ={
'User-Agent':UserAgent().chrome
}
keyword = input('请输入查询的内容:')
args ={
'q':f'{keyword}'
}
f_data=urlencode(args)
req = Request(url,headers=headers,data=f_data.encode())
resp = urlopen(req)
print(resp.read().decode())
POST请求的body部分是一个JSON字符串{"username": "john", "password": "password123"}
,用于向服务器传递用户名和密码。需要注意的是,POST请求的body部分的格式可以根据实际需要而定,可以是JSON、XML、表单数据等格式。通过POST请求,客户端可以向服务器发送数据并获取服务器的响应。服务器可以根据POST请求中包含的数据进行相应的处理,并返回相应的数据给客户端。