python爬虫入门之requests

python爬虫(1):requests

requests入门

request是一种将http协议封装的非常好的包,非常适合各种网络编程
requests中文文档

http协议

所谓HTTP协议,中文名是超文本传输协议。这是一种可靠的可以把各种各样格式的文件在互联网上传输的协议。事实上HTTP协议总共有七步,这次我们先讲一下主要的过程。HTTP协议的传输主要通过HTTP报文实现的:
1. 客户端(比如浏览器) :发送请求报文到服务器
2. 服务器:接收请求报文并处理
3. 服务器:发送响应报文给客户端
4. 客户端:处理接收到的内容。


网页请求方法

爬虫一般请求的网页方法有get和post方法,post方法需要传递参数

get与post方法的区别

  1. get方法通常用于访问
  2. post一般用于访问需验证信息和登陆的网页,方便传参数
  3. 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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值