Requests模块简介
Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。Requests 使用的是 urllib3,因此继承了它的所有特性。
Requests模块常用函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
#HTTP请求类型 #get类型 r = requests.get('https://github.com/timeline.json') #post类型 r = requests.post("http://m.ctrip.com/post") #put类型 r = requests.put("http://m.ctrip.com/put") #delete类型 r = requests.delete("http://m.ctrip.com/delete") #head类型 r = requests.head("http://m.ctrip.com/head") #options类型 r = requests.options("http://m.ctrip.com/get") #获取响应内容 print r.content #以字节的方式去显示,中文显示为字符 print r.text #以文本的方式去显示 #URL传递参数 payload = {'keyword': '日本', 'salecityid': '2'} r = requests.get("http://m.ctrip.com/webapp/tourvisa/visa_list", params=payload) print r.url #示例为http://m.ctrip.com/webapp/tourvisa/visa_list?salecityid=2&keyword=日本 #获取/修改网页编码 r = requests.get('https://github.com/timeline.json') print r.encoding r.encoding = 'utf-8' #json处理 r = requests.get('https://github.com/timeline.json') print r.json() #需要先import json #定制请求头 url = 'http://m.ctrip.com' headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'} r = requests.post(url, headers=headers) print r.request.headers #复杂post请求 url = 'http://m.ctrip.com' payload = {'some': 'data'} r = requests.post(url, data=json.dumps(payload)) #如果传递的payload是string而不是dict,需要先调用dumps方法格式化一下 #post多部分编码文件 url = 'http://m.ctrip.com' files = {'file': open('report.xls', 'rb')} r = requests.post(url, files=files) #响应状态码 r = requests.get('http://m.ctrip.com') print r.status_code #响应头 r = requests.get('http://m.ctrip.com') print r.headers print r.headers['Content-Type'] print r.headers.get('content-type') #访问响应头部分内容的两种方式 #Cookies url = 'http://example.com/some/cookie/setting/url' r = requests.get(url) r.cookies['example_cookie_name'] #读取cookies url = 'http://m.ctrip.com/cookies' cookies = dict(cookies_are='working') r = requests.get(url, cookies=cookies) #发送cookies #设置超时时间 r = requests.get('http://m.ctrip.com', timeout=0.001) #设置访问代理 proxies = { "http": "http://10.10.10.10:8888", "https": "http://10.10.10.100:4444", } r = requests.get('http://m.ctrip.com', proxies=proxies) |
Requests模块使用实例,获取网页源码数据(这是爬虫的基础哦)
调用requests库里面的get方法,获取网页的信息,调用page.text获取网页源码,然后通过print打印出网页源码
1 2 3 4 |
import requests page = requests.get('http://www.baidu.com') text = page.text print(text.encode("utf-8")) |
我们测试获取baidu首页的代码
1 2 3 4 5 6 7 |
E:\python\python_tools.git\trunk\test>hello.py b'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge ><meta content=always name=referrer><link rel=stylesheet type=text/css href=http ://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>\xc3\xa7\xc2\x99\xc2\x be\xc3\xa5\xc2\xba\xc2\xa6\xc3\xa4\xc2\xb8\xc2\x80\xc3\xa4\xc2\xb8\xc2\x8b\xc3\x af\xc2\xbc\xc2\x8c\xc3\xa4\xc2\xbd\xc2\xa0\xc3\xa5\xc2\xb0\xc2\xb1\xc3\xa7\xc2\x |
未经允许不得转载:Python在线学习 » Python模块 Requests网络请求