requests库入门

2017-03-02  本文已影响0人  KelvinX

1.本周学习内容思维导图

Requests库.png

2.目录

3.Requests库对象的属性

了解Requests库对象的属性,先用Requets库的get()方法获取对象,例如爬取百度首页

>>> import requests
>>> r = requests.get("http://www.baidu.com") 
>>> r.status_code #HTTP请求的返回状态,200表示连接成功,404表示连接失败
200
>>> r.text #HTTP响应内容的字符串形式,既url对应的页面内容
'<!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 ...
>>> r.encoding #从HTTP中猜测的响应内容方式
'ISO-8859-1'
>>> r.apparent_encoding #从内容中分析出的相应内容编码方式(备选编码方式)
'utf-8'
>>> r.content #HTTP响应内容的二进制形式
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>\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <d ...

4.Requests库方法入门

  1. request.request(method,url,**kwargs)
    method:请求方法
    r = request.requests('GET',url,kwargs)
    r = request.requests('HEAD',url,
    kwargs)
    r = request.requests('POST',url,kwargs)
    r = request.requests('PUT',url,
    kwargs)
    r = request.requests('PATCH',url,kwargs)
    r = request.requests('delete',url,
    kwargs)
    r = request.requests('OPTION',url,**kwargs)
    **kwargs:控制访问的参数,均为可选参数
>>> kv = {'key1':'value1','key2':'value2'}
>>> r = requests.request('POST','http://python123.io/ws',data = kv)
>>> body = '主体内容'
>>> r = requests.request('POST','http://python123.io/ws',data = kv)
>>> r = requests.request('POST','http://python123.io/ws',data = kv)

将data放在url链接对应的位置,作为数据来存储

>>> hd = {'user-agent':'Chrome/10'}
>>> r = requests.request('POST','http://python123.io/ws',headers=hd)

在访问链接时,可以模拟成chrome 浏览器去访问链接

  1. requests.get(url,params=None,**kwargs)
    ur·:拟获取页面的url链接
    params:url中的额外参数,字典或字节流格式,可选
    **kwargs:剩下的12个控制访问的参数
  2. requests.head(url,**kwargs)
  3. requests.post(url,data=None,json=None,**kwargs)
  4. requests.put(url,data=None,**kwargs)
  5. requests.patch(url,data=None,**kwargs)
  6. requests.delete(url,**kwargs)

5.HTTP协议入门

方法 说明
GET 请求获取URL位置的资源
HEAD 请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST 请求向URL位置的资源后附加新的数据
PUT 请求向URL位置储存一个资源,覆盖原URL位置的资源
PATCH 请求向局部更新URL位置的资源,即改变该处资源的部分欸容
DELETE 请求删除URL位置储存的资源

6.爬取网页的通用代码框架

import requests

def getHTMLText(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status() #如果状态不是200,则引发异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print("爬虫失败!")
        
if __name__ == "__main__":
    url = "http://www.baidu.com"
    print(getHTMLText())

7.robots协议

Robots Exclusion Standard 网络爬虫排除标准

作用 网站告知网络爬虫哪些页面可以抓取,哪些不行
形式 在网站根目录下的robot.txt 文件

比如:

http://www.jd.com/robots.txt
上一篇下一篇

猜你喜欢

热点阅读