网络请求模块二
1.通过post请求处理360翻译
"""
自己做一个360翻译小脚本
用到的技术点 input requests json
json--->dict
loads
url 请求头 请求头消息 post 表单数据 from data payload
asd = input("请输入你要翻译的东西:")
url = f'https://fanyi.so.com/index/search?eng=0&validate=&ignore_trans=0&query={asd}'
"""
import requests
import json
choose = input('请输入你的选择(0、中文翻译成英文,1、英文翻译成中文)')
asd = input("请输入你要翻译的内容:")
url = f'https://fanyi.so.com/index/search?eng={choose}&validate=&ignore_trans=0&query={asd}'
# 请求头信息 字典数据类型
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36",
"Cookie":"QiHooGUID=51231EBDDC895D478F0981525CF85B94.1687089107779; Q_UDID=d1950259-88a3-a758-8bad-4a3ba67a6bc4; __guid=144965027.1919271880535753000.1687089106777.9148; count=1",
"Referer":"https://fanyi.so.com/",
"Pro":"fanyi"
}
# 表单数据
data = {
'eng': choose,
'validate': '',
'ignore_trans': '0',
'query': asd
}
response = requests.post(url, headers=headers, data=data)
# print(response)
data = json.loads(response.text)
# print(data)
# print(response.json())
print(data['data']['fanyi'])
运行结果:
2.12306查票
import requests
url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2023-06-23&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT'
# 请求头信息 字典数据类型
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36",
"Cookie": "JSESSIONID=37826EB24E848F5A0766B61A55671E4C; _jc_save_wfdc_flag=dc; RAIL_EXPIRATION=1682794922919; RAIL_DEVICEID=C-jRO8IMbCte7HDpTOCmT45tfzqRGKpb4_x9-Ap6irv-XrrTilYE2GP8BiKNyWPdBEdeUyqbK_NWq97h58LQoQ0piqYBlDdangzehxozLy2nSf9KWVyT4BBEF4lGBZQAKGtaqrmxr-2IRF1__dS0MI9RL3PqGN9p; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; fo=undefined; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_toStation=%u4E0A%u6D77%2CSHH; BIGipServerotn=2631336202.64545.0000; BIGipServerpassport=803733770.50215.0000; route=495c805987d0f5c8c84b14f60212447d; _jc_save_fromDate=2023-06-23; _jc_save_toDate=2023-06-23"
} # Cookie具有时效性
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
data = response.json() # 字典
# print(data)
mubidata = data['data']['result']
# print(mubidata,len(mubidata))
for i in mubidata:
count = 0 # 下标
# 每一个i就代表每一个列车信息
temp_list = i.split('|')
# print(temp_list)
# 每一个j就代表着我们每一个temp_list列表中的每一个数据
for j in temp_list:
# print(j, count)
count += 1
if temp_list[31] != "无" and temp_list[31] != "":
print(temp_list[3], "有票", "一等座剩余:", temp_list[31])
else:
print(temp_list[3], "无票")
"""
车次 count==3
二等座 count==30
一等座 count==31
"""
运行结果:
3.练习
"""
百度翻译实战:输入英文翻译成中文
"""
import requests
url = 'https://fanyi.baidu.com/sug'
word = input('请输入你要翻译的单词:') # str
# 请求头
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
# 表单数据
data111111 = {
'kw': word
}
response = requests.post(url, headers=headers, data=data111111)
mubidata = response.json()['data'] # 通过键去进行取值
print(mubidata)
for i in mubidata:
print(i)
运行结果: