python爬虫-学习记录day03

239 阅读2分钟

网络请求模块二

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'])

运行结果:

image.png

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   
        """

运行结果:

image.png

image.png

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)

image.png

运行结果:

image.png