python爬虫入门之requests
2018-01-23 20:45
309 查看
python爬虫(1):requests
requests入门
request是一种将http协议封装的非常好的包,非常适合各种网络编程requests中文文档
http协议
所谓HTTP协议,中文名是超文本传输协议。这是一种可靠的可以把各种各样格式的文件在互联网上传输的协议。事实上HTTP协议总共有七步,这次我们先讲一下主要的过程。HTTP协议的传输主要通过HTTP报文实现的:1. 客户端(比如浏览器) :发送请求报文到服务器
2. 服务器:接收请求报文并处理
3. 服务器:发送响应报文给客户端
4. 客户端:处理接收到的内容。
网页请求方法
爬虫一般请求的网页方法有get和post方法,post方法需要传递参数get与post方法的区别
get方法通常用于访问
post一般用于访问需验证信息和登陆的网页,方便传参数
post比get方法更安全
### get一般用法 url = 'https://douban.zhihu.com' #requests: import requests response=requests.get(url) html=response.content #session会话方式 session=requests.session() response=session.get(url) html=response.content #urllib2: #python2环境下运行 import urllib2 response = urllib2.urlopen(url) content = response.read() #Httplib2: import httplib2 http = httplib2.Http() response_headers, content = http.request(url, 'GET')
## post用法 import requests ### post参数 post_data={ 'stock':'000001', 'searchkey':'', 'category':'category_ndbg_szsh;', 'pageNum':'1', 'pageSize':'', 'column':'szse_main', 'tabName':'fulltext', 'sortName':'', 'sortType':'', 'limit':'', 'seDate':'' } r2 = requests.post('http://www.cninfo.com ,data=post_data)
requests返回的响应报文的状态
2开头的是正常3开头的是重定向(重定向到另外一个URL)
4开头的是客户端异常,
5开头的是服务器异常。
响应内容
text\json()\content数据类型的区别resp.text返回的是Unicode型的数据。
resp.content返回的是bytes型的数据.
resp.json()返回的是json格式数据.
也就是说,如果你想取文本,可以通过r.text。
如果想取图片,文件,则可以通过r.content。
小结:HTTP协议是一种在互联网上传输文件的协议,主要过程是客户端发送请求报文、服务器接收并发送响应报文、客户端接收;访问某个服务器资源需要知道它的URL;主要的HTTP请求方法有get(客户端不发数据)和post(客户端发数据)
import requests r1 = requests.get('http://cn.bing.com/search?q=requests') #get方法 html1=r1.text #返回文本 html2=r1.content #文件全文 html3=r1.json() #返回JSON格式数据 #把请求回来的json数据转成Python字典并返回 r1.status_code #状态码,正常是200 r1.encoding #文件编码,比如'utf-8'
json介绍
json
伪造请求
requests官方文档HTTP headers讲解
http头讲解伪装成浏览器
有些网页的服务器会验证请求的发送者是否是真实的浏览器客户端,这时候需要伪装成浏览器访问。一般用headers头伪装headers=[{'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'},\ {'User-Agent':'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11'},\ {'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'}] url='http//www.baidu.com' html=requests.get(url,headers=headers)
相关文章推荐
- python爬虫入门教程--利用requests构建知乎API(三)
- Python爬虫入门之一-requests+BeautifulSoup
- Python爬虫(入门+进阶)学习笔记 1-3 使用Requests爬取豆瓣短评
- Python爬虫大杀器之Requests快速入门
- Python爬虫—3第三方库_1_requests_入门
- python 爬虫 之如何入门 Requests 提供了很好的指南【三】
- requests和bs4的python爬虫入门
- Python爬虫----爬虫入门(5)---Requests基础
- Python 爬虫入门——requests
- python爬虫开发(6)—爬虫入门--Requests爬虫(cookie)
- [置顶] python爬虫实践——零基础快速入门(二)爬取豆瓣电影
- Python爬虫入门(3):Urllib库的基本使用
- python爬虫入门
- Python爬虫入门(7):正则表达式
- Python爬虫(八)_Requests的使用
- Python爬虫(3):Requests的高级用法
- Python爬虫入门六
- Python爬虫入门:综述
- Python Requests快速入门