爬虫学习三(requests)

requests库:

  安装和文档地址:

    pip3 install requests

  中文文档:https://2.python-requests.org//zh_CN/latest/index.html

  GitHub地址:https://pypi.org/project/requests/

基本使用:

发送GET请求:

  发送get请求,直接调用‘requests.get’ 就可以了,想要发送什么类型的请求, 就调用什么方法。

 
 
import requests

# 传参数
params = {
'wd': '中国'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
}
response = requests.get("https://www.baidu.com/s", params=params, headers=headers)
with open('baidu.html', 'w', encoding='utf-8') as fp:
fp.write(response.content.decode('utf-8'))

#response的一些属性
print(response.text) #自己解码,不准确 查看响应内容和content一样
# print(type(response.text)) <class 'str'>
# print(response.text)
print(type(response)) #bytes类型
print(response.content.decode('utf-8'))
#查看完整的url地址
print(response.url) # https://www.baidu.com/
# 查看响应头字符串的编码
print(response.encoding) #ISO-8859-1
# 查看响应的
print(response.status_code) #200
# 返回为字典的形式
print(response.json())

response.text 和 response.content的区别:

  1. response.content : 这个是直接从网络上面抓取的数据。没有进行任何解码。所以是一个bytes类型, 其实在硬盘上和网路上传输的字符串都是bytes类型。

  2. response.text :  这个是str的数据类型, 是requests库将response.content 进行解码的字符串,解码需要指定一个编码方式, requests 会根据自己的猜测来判断编码的方式。所以有的时候可能会猜测错误,就会导致解码产生乱码,这时候应用 ‘response.content.decode('utf-8')’ 进行手动解码。

发送POST请求:

  1.就是把上面的get改成post就行了。

  2.已拉勾网为例:

  

from urllib import request
import requests


data = {
    'first': 'true',
    'pn': 1,
    'kd': 'python'
}
headers = {
    'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput='
}

response = requests.post('https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=flase', data=data, headers=headers)

print(response.text)
print(response.url)

猜你喜欢

转载自www.cnblogs.com/QQmini/p/10809189.html