python 爬虫系列02 认识 requests
来源:互联网 发布:淘宝搜索结果不对 编辑:程序博客网 时间:2024/06/07 01:51
本系列所有文章基于 python3.5.2
requests 是基于 urllib 的三方模块,相比于 uillib, 操作更简洁,功能更强大,而且支持 python3
GET
直接调用 get
方法请求百度贴吧首页
import requestsr = requests.get(url='https://tieba.baidu.com/f')print(r.status_code)print(r.text)
得到如下结果:
200...<!--STATUS OK--><html><head><meta name="keywords" content="贴吧,,百度贴吧,论坛,兴趣,社区,BBS"/><meta name="description" content="百度贴吧——全球最大的中文社区。...
带参数的 get 请求,这里请求李毅吧的首页
import requestsparams = {'kw': '李毅'.encode('utf-8'),'fr':'ala0','tpl':'5'}r = requests.get(url='https://tieba.baidu.com/f', params=params)print(r.status_code)print(r.text)
得到如下结果:
200...<meta charset="UTF-8"><meta name="keywords" content="李毅,网友俱乐部,贴吧,三百六十行,神武">...
POST
post 方法与 get 类似,直接调用即可
r = requests.post(url='https://tieba.baidu.com/f', params=params)
如果 post
上传数据,数据转换为 bytes 放在 data 字段即可
import requestsimport jsonupload_url = '***'r = requests.post(upload_url, data=json.dumps({'some': 'data'}))
Headers
加上 HTTP 请求头也很简单,只需把各个参数作为写入 dict 传给 headers 参数即可
下面模拟浏览器请求中国天气网数据
import requestsurl = 'http://www.weather.com.cn/weather/101010100.shtml'header = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate, sdch', 'Accept-Language': 'zh-CN,zh;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.3226.400 QQBrowser/9.6.11681.400'}req = requests.get(url, headers=header)req.encoding = 'utf-8' # 防止乱码print(req.status_code)print(req.text)
得到如下 HTTP 响应:
200...<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>【北京天气】北京天气预报,蓝天,蓝天预报,雾霾,雾霾消散,天气预报一周,天气预报15天查询</title>...
异常, JSON 解码
URL = 'http://ip.taobao.com/service/getIpInfo.php' # 淘宝IP地址库APItry: r = requests.get(URL, params={'ip': '49.4.168.222'}, timeout=5) r.raise_for_status() # 如果响应状态码不是 200,就主动抛出异常except requests.RequestException as e: print(e)else: result = r.json() # Requests中内置的JSON解码器 print(type(result), result, sep='\n')
得到结果:
{'code': 0, 'data': {'region_id': '110000', 'isp_id': '100017', 'county': '', 'city_id': '110100', 'region': '北京市', 'area_id': '100000', 'country_id': 'CN', 'city': '北京市', 'country': '中国', 'area': '华北', 'county_id': '-1', 'ip': '49.4.168.222', 'isp': '电信'}}
cookies
如果某个响应中包含 cookie ,可以快速的访问他们
import requestsr = requests.get('http://www.baidu.com', timeout=5)print(tuple(r.cookies))
得到如下结果:
(Cookie(version=0, name='BDORZ', value='27315', port=None, port_specified=False, domain='.baidu.com'...
要想发送你的 cookies 到服务器,可以使用 cookies 参数:
cookies = {'BDUSS': 'n5-fjRvZ95b...', 'ispeed_lsm': '2', 'BD_UPN': '1a314753'} # 具体内容可用 fiddler 抓包获取r = requests.get('http://www.baidu.com', cookies=cookies,timeout=5)print(r.status_code)
阅读全文
0 0
- python 爬虫系列02 认识 requests
- Python爬虫Requests模块系列之六
- python requests 小爬虫
- Python爬虫之requests
- Python requests爬虫实例
- python爬虫---requests
- python爬虫-Requests库
- Python爬虫 --requests库
- python爬虫之requests
- 【Python爬虫系列】使用requests爬取图片
- python 爬虫系列01 认识 uillib
- python 爬虫系列03 认识 BeautifulSoup
- python:爬虫系列-02
- 【爬虫】Python的Requests模块
- python 爬虫试手 requests+BeautifulSoup
- Python爬虫利器requests详解
- Python爬虫工具之Requests
- Python爬虫之requests介绍
- mybatis动态sql中的trim标签的使用
- 免费的酷播云使用操作步骤(四步轻松完成哦)
- C++默认参数函数及函数重载
- Java异常处理
- 数据库隔离级别及其实现原理
- python 爬虫系列02 认识 requests
- Android数据加密之Des加密
- Spring中抛出异常时,既要要返回错误信息,还要做事务回滚
- 欢迎使用CSDN-markdown编辑器
- HTTP报文实例分析
- CSS样式的优势
- 计数排序
- Unity中的混合因子
- C++冒泡排序递归&&非递归版本