python爬虫-requests

Requests库是目前常用且效率较高的爬取网页的库

1.一个简单的例子

import requests    #引入requests库r = requests.get("http://www.baidu.com")  #调用get方法获取界面print(r.status_code)    #输出状态码print(r.text)    #输出页面信息

  通过以下代码,便可获取一个response对象

2.通用代码框架

import requests
def getHtmlText(url):
    try:
        r = requests.get(url, timeout = 30)    #设置响应时间和地址
        r.raise_for_status()             #获取状态码,如果不是200会引发HTTPERROR异常
        r.encoding = r.apparent_encoding          #apparent_encoding是识别网页的编码类型
        return r.text
    except:
        return "产生异常"
if __name__ == "__main__":
    url = ‘http://www.baidu.com‘
    print(getHtmlText(url))

3.requests库的具体介绍

  3.1 response属性介绍

    

     属性逻辑结构:

          

        

  3.2requests方法介绍  

                               requests库对比http协议

       

 ps:在这些方法中,大致有三个参数,略有差别

  3.2.1  get方法

       

r = requests.get(‘http://www.baidu.com‘)
print(r.text)

3.2.2head方法

    

r = requests.head(‘http://www.baidu.com‘)
print(r.headers)

  3.2.3 post方法

payload = {‘key1‘: ‘value1‘, ‘key2‘ : ‘value2‘ }
r = requests.post(‘http://httpbin.org/post‘, data = payload)
print(r.text)
#输出结果
{...
      "form": {
    "key1": "value1",
    "key2": "value2"
  },
...}

  3.2.4 put方法

payload = {‘key1‘: ‘value1‘, ‘key2‘ : ‘value2‘ }r = requests.put(‘http://httpbin.org/post‘, data = payload)
print(r.text)  #向URL传一个字典,自动编码为表单         #........字符串,........data#输出结果
{...
     "form": {
    "key1": "value1",
    "key2": "value2"
  },
...}

  3.2.5 reuqest方法--构造请求

requests.request(method, url, **kwrags)

#method:请求方式,对应get/put/post等七种
#url : 链接
#**kwrags : 13个控制访问的参数

  method请求方式:

requests.request(‘GET‘, url, **kwrags)
requests.request(‘HEAD‘, url, **kwrags)
requests.request(‘POST‘, url, **kwrags)
requests.request(‘PUT‘, url, **kwrags)
requests.request(‘PATCH‘, url, **kwrags)
requests.request(‘DELETE‘, url, **kwrags)
requests.request(‘OPTIONS‘, url, **kwrags)

  **kwargs详解:

kv = {‘key1‘: ‘value1‘, ‘key2‘ : ‘value2‘ }  #params
r = requests.request(‘POST‘, ‘http://python123.io/ws‘, data = kv)
data1 = ‘hellowrld‘                #data
r = requests.request(‘POST‘, ‘http://python123.io/ws‘, data = data1)

jso = {‘key1‘: ‘value1‘}             #jsonr = requests.request(‘POST‘, ‘http://python123.io/ws‘, json = jso)

hd = {‘key1‘: ‘value1‘}              #headersr = requests.request(‘POST‘, ‘http://python123.io/ws‘, headers = hd) 

      

fs = {‘file‘ : open(‘data.xls‘,‘rb‘)}      #files
r = requests.request(‘POST‘,‘http://python123.io/ws‘, files = fs)

                                               #timeout
r = requests.request(‘POST‘,‘http://python123.io/ws‘, timeout = 10)

                                               #proxies
pxs = {‘http‘: ‘http://usr:[email protected]:1234‘,
         ‘https‘ : ‘https://10.10.10.1:4321‘}
r = requests.request(‘GET‘,‘http://www.baidu.com‘, proxies = pxs)    

  3.2.6 delete方法

      

  3.2.7 patch方法

      

  3.3PATCH和PUT的区别

       .

4.requests库的异常

  

  本文是通过整合慕课网上的资料和网上相关资料完成

时间: 2024-11-08 22:22:13

python爬虫-requests的相关文章

Python 爬虫—— requests BeautifulSoup

本文记录下用来爬虫主要使用的两个库.第一个是requests,用这个库能很方便的下载网页,不用标准库里面各种urllib:第二个BeautifulSoup用来解析网页,不然自己用正则的话很烦. requests使用,1直接使用库内提供的get.post等函数,在比简单的情况下使用,2利用session,session能保存cookiees信息,方便的自定义request header,可以进行登陆操作. BeautifulSoup使用,先将requests得到的html生成BeautifulSo

解决python爬虫requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题

爬虫时报错如下: requests.exceptions.SSLError: HTTPSConnectionPool(host='某某某网站', port=443): Max retries exceeded with url: /login/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify fail

python爬虫---requests库的用法

requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了. 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get('http://www.baidu.com')print(response.status_c

python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例

第一次写一个算是比较完整的爬虫,自我感觉极差啊,代码low,效率差,也没有保存到本地文件或者数据库,强行使用了一波多线程导致数据顺序发生了变化... 贴在这里,引以为戒吧. # -*- coding: utf-8 -*- """ Created on Wed Jul 18 21:41:34 2018 @author: brave-man blog: http://www.cnblogs.com/zrmw/ """ import requests

Python爬虫requests判断请求超时并重新发送请求

在爬虫的执行当中,总会遇到请求连接超时的情况,下面的代码块是在请求超时的情况下,捕捉超时错误并连续发送多次请求,只到请求连接成功. NETWORK_STATUS = True # 判断状态变量 try:    response = requests.post(url, headers=self.headers, data=data, timeout=5)    if response.status_code == 200:        return response except reques

python爬虫requests过程中添加headers

浏览器中打开页面,以edge为例,点击"查看源"或F12 第一步:点击上图中"网络"标签,然后刷新或载入页面 第二步:在右侧"标头"下方的"请求标头"中的所有信息都是headers内容,添加到requests请求中即可 代码示例如下: headers = {'Accept': 'text/html, application/xhtml+xml, image/jxr, */*', 'Accept - Encoding':'gzi

Python爬虫学习一之Requests包使用方法

Requests函数库是学习Python爬虫必备之一, 能够帮助我们方便地爬取. 本文主要参考了其官方文档. Requests安装: requests目前的版本是v2.11.1, 在WINDOWS上可以通过命令行窗口(运行cmd命令), 利用pip进行自动地安装(很方便): > pip install requestsCollecting requests Downloading requests-2.11.1-py2.py3-none-any.whl <514kB>Installing

Python 爬虫入门(requests)

相信最开始接触Python爬虫学习的同学最初大多使用的是urllib,urllib2.在那之后接触到了第三方库requests,requests完全能满足各种http功能,真的是好用爆了 :D 他们是这样说的: “Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用.Requests 允许你发送纯天然,植物饲养的 HTTP/1.1 请求,无需手工劳动.你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码.Keep-alive 和 HTTP

Python爬虫准备——requests和bs4安装

昨天想要写一下Python爬虫试试,但没想到导入的包并没有安装好.有两个这样的包,requests和bs4,requests是网络请求,bs4是html解析器. 那么接下来就说一下如何安装这两个包 一.用指令安装(pip install ……) 大体上来说就是,打开DOS(命令提示符),进入到你安装Python环境的目录下,找到Scripts目录并进入,然后执行指令 进入DOS有两种方法: 1.Win+R,输入cmd 然后点击确定即可进入 2.Win+S,打开搜索框,搜索cmd并进入 进入以后,