python requests模块和Beautiful Soup模块
2015-12-20 15:46
736 查看
requests
早就听说requests的库的强大,只是还没有接触,今天接触了一下,发现以前使用urllib,urllib2等方法真是太搓了……这里写些简单的使用初步作为一个记录
一、安装 http://cn.python-requests.org/en/latest/user/install.html#install
二、发送无参数的get请求
?
>>> r =requests.get('http://httpbin.org/get') >>>printr.text { "args": {}, "headers": { "Accept":"*/*", "Accept-Encoding":"gzip, deflate", "Connection":"close", "Host":"httpbin.org", "User-Agent":"python-requests/2.3.0 CPython/2.6.6 Windows/7", "X-Request-Id":"8a28bbea-55cd-460b-bda3-f3427d66b700" }, "origin":"124.192.129.84", "url":"http://httpbin.org/get" }
三、发送带参数的get请求,将key与value放入一个字典中,通过params参数来传递,其作用相当于urllib.urlencode
?
>>>importrequests >>> pqyload ={'q':'杨彦星'} >>> r =requests.get('http://www.so.com/s',params=pqyload) >>> r.url u'http://www.so.com/s?q=%E6%9D%A8%E5%BD%A6%E6%98%9F'
四、发送post请求,通过data参数来传递,
?
>>> payload ={'a':'杨','b':'hello'} >>> r =requests.post("http://httpbin.org/post", data=payload) >>>printr.text { "args": {}, "data": "", "files": {}, "form": { "a":"\u6768", "b":"hello" }, "headers": { "Accept":"*/*", "Accept-Encoding":"gzip, deflate", "Connection":"close", "Content-Length":"19", "Content-Type":"application/x-www-form-urlencoded", "Host":"httpbin.org", "User-Agent":"python-requests/2.3.0 CPython/2.6.6 Windows/7", "X-Request-Id":"c81cb937-04b8-4a2d-ba32-04b5c0b3ba98" }, "json": null, "origin":"124.192.129.84", "url":"http://httpbin.org/post" } >>>
可以看到,post参数已经传到了form里,data不光可以接受字典类型的数据,还可以接受json等格式
?
?
?
六、响应内容
6.1 响应状态码
r = requests.get('http://httpbin.org/get')
print r.status_code
6.2 响应头
?
r.headers[‘Content-Type’]
r.headers.get(‘Content-Type’)
6.3 响应内容,前面已经在应用了
r.text
r.content
七、获取响应中的cookies
?
?
八、使用timeout参数设置超时时间
>>> requests.get('http://github.com', timeout=1)
<Response [200]>
如果将时间设置成非常小的数,如requests.get('http://github.com', timeout=0.001),那么如果在timeout的时间内没有连接,那么将会抛出一个Timeout的异常
九、访问中使用session
先初始化一个session对象,s = requests.Session()
然后使用这个session对象来进行访问,r = s.post(url,data = user)
Beautiful Soup
from bs4 import BeautifulSoup import requests req = requests.get("http://www.baidu.com") soup = BeautifulSoup(req.text,'html.parser') print soup.find_all('a')
相关文章推荐
- Python中的ftplib模块
- python碰到问题的时候应该如何查找帮助
- python核心编程-继承
- Python2还是Python3
- windows下面安装Python和pip终极教程
- python定时任务调度——apscheduler模块
- 零基础入门学习Python(15):二进制存储 pickle 和异常处理
- Python学习实践----比较字典中是否有相同键值的方法之一
- python 返回的json格式转换
- learn python in 10 monutes
- python: 实现通讯录录入与查找的小脚本
- Python基础教程 第9章: 魔法方法、属性和迭代器 学习笔记
- 查找算法—折半查找算法分析与实现(Python)
- python中and和or的使用方法
- Python: scikit-image 图像的基本操作
- Python: scikit-image binary descriptor
- 《利用python进行数据分析》第2章数据集的训练
- leetcode Count and Say python
- python的函数
- Python 入门简介(一)