[Rastreador web de Python] 150 conferencias para obtener fácilmente las notas del curso de pago del rastreador web de Python Capítulo 6: el uso de la biblioteca básica del rastreador 2 (biblioteca de solicitudes)

 solicita biblioteca biblioteca de terceros

1. Enviar solicitud GET / POST

import requests

# 添加headers 和 查询参数 信息

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'
}
url = 'https://www.baidu.com/'

kw = {'wd': '中国'}
response = requests.get(url, headers=headers, params=kw)
print(response)

#查询响应内容
# print(response.text)  #返回Unicode格式数据
#
# print(response.content) #返回字节流数据
# print(response.content.decode('utf-8')) #产生乱码时

print(response.url)
print(response.encoding)    #响应字符编码

Tenga en cuenta la diferencia entre contenido y texto,

response.text devuelve datos en formato Unicode

response.content devuelve datos de flujo de bytes, cuando hay un código confuso, debe usar decode () para decodificar

 

2. Agente de poderes

El uso de IP de proxy se introdujo anteriormente en la introducción de la biblioteca urllib. El principio de proxy en las solicitudes es el mismo. La diferencia de uso es que la biblioteca de solicitudes es más concisa y conveniente. Coloque el proxy directamente en el atributo proxies del método de solicitud. Si, como sigue:

import requests

url = 'http://httpbin.org/ip'
proxy = {
    'http': '123.160.68.74:9999'
}
resp = requests.get(url, proxies=proxy)
print(resp.text)

 

3. Cookie

Si una respuesta contiene cookies, puede utilizar el atributo cookies para obtener el valor de la cookie de retorno.

3.1 Uso de cookies para lograr un inicio de sesión simulado

import requests

# resp = requests.get('https://www.baidu.com/')
# print(resp.cookies)
# print(resp.cookies.get_dict())

url = 'https://www.zhihu.com/hot'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36',
    'cookie': '_zap=9cb16e80-2e5a-442a-ad83-8c4e56151274; d_c0="AHBUkeFrFhGPThKJGfZWuvXPYdeDQlxWqI4=|1586342451"; _xsrf=KGrwON9rdqf1Va6QrWyiLwNOTRoK5SPY; _ga=GA1.2.925220024.1595327992; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1595327992,1595330061,1595376694; capsion_ticket="2|1:0|10:1599905310|14:capsion_ticket|44:NzhiNDdjZDFjNjBiNDAxOThhNWI3ODQ0MDJhMGQxZGU=|c18f9b858f5a3b1953d240092ab6d1be2fcdd60cb4ca8bdcb531a2161f93fb1b"; z_c0="2|1:0|10:1599905438|4:z_c0|92:Mi4xbkV5a0JRQUFBQUFBY0ZTUjRXc1dFU2NBQUFDRUFsVk5uaXVFWHdEQXZmUFJ5Y0x4WC1ySS1wQ0dYQnl5ZHh3RVhB|29705d2526c129e3642b869de321e6f086c38b17aa2c1285a131192d2de3477b"; tst=h; tshl=; q_c1=1de7075e7f0448aeb62af8961806c2f1|1599916711000|1588725781000; KLBRSID=2177cbf908056c6654e972f5ddc96dc2|1599917151|1599915145'
}
resp = requests.get(url, headers=headers)
print(resp.text)

3.2 Sesión, realizar cookie compartida

import requests

post_url = 'https://i.meishi.cc/login.php?redirect=https%3A%2F%2Fwww.meishij.net%2F'

post_data = {
    'username':'[email protected]',
    'password':'wq15290884759.'
}
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}

# 登录
session = requests.session()
session.post(post_url,headers=headers,data=post_data)


#访问个人网页
url = 'https://i.meishi.cc/cook.php?id=13686422'

resp = session.get(url)
print(resp.text)

 

4. Manejo de certificados SSL que no son de confianza

4.1 certificado SSL

Un certificado SSL es un tipo de certificado digital , similar a una copia electrónica de una licencia de conducir, pasaporte y licencia comercial. Debido a que está configurado en el servidor, también se denomina certificado de servidor SSL.

El certificado SSL es para cumplir con el protocolo SSL, emitido por una autoridad certificadora digital confiable CA, después de verificar la identidad del servidor, con verificación de identidad del servidor y funciones de encriptación de transmisión de datos.

https://baike.baidu.com/item/SSL%E8%AF%81%E4%B9%A6/5201468?fr=aladdin

Si la solicitud SSL no es de confianza, se producirá un error: como el siguiente error de solicitud

import requests

url = 'https://inv-veri.chinatax.gov.cn/'
resp = requests.get(url)

print(resp.text)

Por lo tanto, después de agregar el valor del atributo de verificación para esta situación, se puede acceder normalmente.

import requests

url = 'https://inv-veri.chinatax.gov.cn/'
resp = requests.get(url, verify=False)

print(resp.text)

 

Supongo que te gusta

Origin blog.csdn.net/weixin_44566432/article/details/108561841
Recomendado
Clasificación