Aprende a gatear de Luffy (¡Vamos, eres el mejor!)

Traducción de Crack Baidu

Requisitos:
# solicitud posterior (con parámetros) # Los
datos de respuesta son un conjunto de datos json

Pasos de escritura :
1. Especificar URL
2. Realizar camuflaje UA
3. Procesamiento de parámetros de solicitud posterior (igual que obtener solicitud)
4. Enviar solicitud
5. Obtener datos de respuesta
6. Almacenamiento persistente de
solicitud posterior:

import requests
import json

if __name__ == "__main__":
    #1、指定url
    post_url = 'https://fanyi.baidu.com/sug'
    #2、进行UA伪装
    headers = {
    
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0'
        
        }
    #3、post请求参数处理(同get请求一致)
    data = {
    
    
        'kw':'dog'
        }
    #4、请求发送
    response = requests.post(url=post_url,data=data,headers=headers)
    #5、获取响应数据:json()方法返回的是obj(如果确认响应数据是json类型的,才可以json())
    dic_obj = response.json()
    #print(dic_obj)    #获取响应数据
    #持久化存储
    fp = open('./dog.json','w',encoding = 'utf-8')
    json.dump(dic_obj,fp=fp,ensure_ascii=False)

    print('over!!!')

Hay una pregunta sobre el __name__ == " principal " al principio , así que lo verifiqué. Existen las siguientes declaraciones:
1) Simboliza la entrada principal del programa en lenguajes como Java, dígale a otros programadores que la entrada del código está aquí.
2) El atributo name__ es un atributo integrado de Python, que registra una cadena.
Si está en el archivo actual, el nombre es __main
.
Imprima el valor del atributo __name__ de este archivo en el archivo de saludo, y muestra __main__
Inserte la descripción de la imagen aquí
 Si es un archivo importado, name__ es el nombre del módulo.
El archivo de prueba importa el módulo de saludo, y el valor del atributo __name__ del módulo de saludo se imprime en el archivo de prueba y se muestra el nombre del módulo del módulo de saludo.
Inserte la descripción de la imagen aquí
Por lo tanto, __name
== ' main ' significa que en el archivo actual, el código de prueba se puede escribir bajo la condición de if name == ' main ':, lo que puede evitar que el código de prueba se ejecute después de importar el módulo.
Resumen :
"if name == ' main ':" a menudo parece inútil, pero sigue siendo necesario debido a la estandarización del código.

Película Douban

obtener solicitud:

import requests
import json

if __name__ == "__main__":
    url = "https://movie.douban.com/j/chart/top_list?"
    #Query String Parameters  //get请求中url后面要带的参数,即上面url问号后面的内容
    #params是一个计算机函数,表示函数的参数是可变个数的,即可变的方法参数
    param = {
    
    
        'type':'24',
        'interval_id':'100:90',
        'action': '',
        'start': '0',#从库中的第几部电影去取
        'limit': '20',#一次取出的个数
        }
    headers = {
    
    
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0'
        }
    response = requests.get(url = url,params = param,headers = headers)
    list_data = response.json()
    fp = open('./douban.json','w',encoding='utf-8')
    #json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。
    #json.dump()将一个Python数据结构转换为JSON;
    #json.loads将一个JSON编码的字符串转换回一个Python数据结构;
    json.dump(list_data,fp=fp,ensure_ascii=False)

    print('over!')

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/langezuibang/article/details/113949973
Recomendado
Clasificación