爬虫_requests
1.基本使用
1.1 文档
官方文档:
http://cn.python-requests.org/zh_CN/latest/
快速上手:
http://cn.python-requests.org/zh_CN/latest/user/quickstart.html
1.2.安装
pip install requests
或
pip install requests -i https://pypi.douban.com/simple

1.3.response的属性及类型
类型:models.Response
r.text: 获取网站源码
r.encoding: 访问或定制编码方式
r.url: 获取请求的url
r.content: 响应的字节类型
r.status_code: 响应的状态码
r.headers: 响应的头信息
import requests url= 'http://www.baidu.com' #一个类型和六个属性 response = requests.get(url=url) print(type(response)) #设置响应的编码格式 response.encoding='utf-8' #以字符串的形式来返回了网页的源码(常用) print(response.text) #返回一个url地址 print(response.url) #返回二进制数据 print(response.content) # 返回响应的状态码 print(response.status_code) # 返回的是响应头信息 print(response.headers)
2.request的get请求
import requests url='https://www.baidu.com/s?' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36' } data={ 'wd':'北京' } # url 请求资源路径 # params 参数 # kwargs 字典 response = requests.get(url=url,params=data,headers=headers) content = response.text print(content) # 总结: # (1)参数使用params传递 # (2)参数无需urlencode编码 # (3)不需要请求对象定制 # (4)请求资源路径中的?可以加也可以不加
3.request的post请求
import requests url = 'https://fanyi.baidu.com/sug' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36' } data={ 'kw':'eye' } # url 请求地址 # data 请求参数 # kwargs 字典 response = requests.post(url=url,data=data,headers=headers) content = response.text # 利用json解决中文乱码问题 import json obj = json.loads(content) print(obj) # 总结: # (1)post请求是不需要编解码 # (2)post请求的参数是data # (3)不需要请求对象的定制
4.get和post的区别?
(1)get请求的参数名字是params,post请求的参数名字是data
(2)请求资源路径后面可以不加“?”
(3)post不需要手动编解码
(4)不需要做请求对象的定制
5.request的代理
import requests # 请求资源地址 url = 'http://www.baidu.com/s?' # 请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36' } #请求参数 data = { 'wd':'ip' } # 代理ip,IP要是不好使你就花钱买一个 proxy = { 'http':'121.230.210.31:2356' } response = requests.get(url=url,params=data,headers=headers,proxies=proxy) content = response.text with open('daili.html','w',encoding='utf-8')as fp: fp.write(content)
代码地址:https://gitee.com/heating-cloud/python_spider.git

浙公网安备 33010602011771号