爬虫学习笔记 - 1
零零散散的在学python爬虫,属于偶尔有空想起来看一下。没有完整的知识体系,基础也学得不扎实。在这里,希望自己能够坚持python爬虫的学习~
requests库
1. Get 请求
-
基本请求
res = requests.get(url,params=params,headers=headers)向网站发起请求,并获取响应对象
-
常用参数
- url :需要抓取的URL地址
- headers : 请求头
- timeout : 超时时间,超过时间会抛出异常
- params: 查询参数,url为基准的url地址,不包含查询参数,该方法会自动对params字典编码,然后和url拼接。参数类型:字典,字典中键值对作为查询参数
-
响应对象(res)属性
- encoding :响应字符编码 res.encoding = 'utf-8'
- text :字符串 网站源码
- content :字节流 字符串网站源码(图片、音频、视频这些文件的本质都是由二进制码组成,用content)
- status_code :HTTP响应码
- url :实际数据的URL地址
- hearders: 响应头
- cookies:Cookies
2. post请求
- 基本请求
res = requests.post(url,data = None,json = None,**kwargs)
-
三种编码方式
- 最常见的post提交数据的方式,以form表单形式提交数据
application/x-www-form-urlencoded - 以json格式提交数据
application/json - 一般使用来上传文件
multipart/form-data
- 最常见的post提交数据的方式,以form表单形式提交数据
-
示例
# 1、form 形式提交数据
import requests,json
url = 'http://httpbin.org/post'
data = {'key1':'value1','key2':'value2'}
r =requests.post(url,data)
print(r.text)
# 2、json格式提交数据
import requests,json
url_json = 'http://httpbin.org/post'
data_json = json.dumps({'key1':'value1','key2':'value2'})
#dumps:将Python的字典结构导出到json(字符串)
#loads:将json(字符串)读成python的字典结构
r_json = requests.post(url_json,data_json)
print(r_json.text)
#3、上传文件
import requests,json
url_mul = 'http://httpbin.org/post'
files = {'file':open('E://report.txt','rb')}
r = requests.post(url_mul,files=files)
print(r)
print(r.text)
print(r.content)
- 使用状态码判断是否成功
requests提供一个内置的状态码查询对象requests.codes,使用实例如下:
import requests
r = requests.get('http://www.jianshu.com')
#调用exit()函数,终止Python程序
exit() if not r.status_code == requests.codes.ok else print('Request Successfully')

浙公网安备 33010602011771号