Requests模块爬虫

Requests:第三方封装的用于网络请求操作的一个模块,主要用于爬虫程序的开发,尤其以开发简单,上手容易、操作灵活、开发效率高著称,所以在实际项目操作过程中,requests模块是使用最多的爬虫操作模块。

1. 安装

    pip install requests
    #或者
    easy_install requests

简单爬虫案例:

   #引入需要的模块
   import requests
   #发送请求得到相应数据
   response = requests.get("https://www.taobao.com")
   #打印展示获取的数据
   print(response.text)

2. 各种设置

  • 2.1请求方式
    通过request直接调⽤用对应的函数/⽅方法即可完成
    一般只有 requests.get 和 requests.post 。

  • 2.2 附带普通参数的请求
    参数包含在⼀一个字典对象中,将字典对象交给requests的函数即可。

        # get 方式发送请求,包含参数,用 params 接收
        res = requests.get(URL, params = data) 
        # post 方式发送请求,包含参数 ,用 data 接收
        res = requests.post(URL, data = data)
    
  • 2.3 传递JSON参数
    在请求的过程中,有些URL接口需要的参数数据并不不是零散的数据,而是需要封装在一起的JSON数据,此时数据需要转化为json格式。

        # 引⼊入需要的模块  
        imoprt json
        # 封装参数的字典 
        data = {“city”:”郑州”} 
        # 转换参数 
        json_data = json.dumps(data) 
    
        get(url, json=..)--无效
        post(url, json=..)--常规操作[使用非常少],一般用data传递
    
  • 2.4 返回的数据和它编码操作
    返回的数据,可以根据数据的编码类型区分为二进制数据和文本数据,两种不同的数据通过两个不同的属性进行获取。

    response.content:获取响应中包含的二进制数据 response.text:获取响应中包含的文本数据
    如果出现乱码,可通过response的属性encoding,
      进行编码的获取和指定
    response.encoding = “编码(utf-8)”

  • 2.5 文件上传操作
    requests对象支持文件的数据流式处理,不需要将整个文件都加载到内存中,而是读取一部分传递一部分,将文件指定给requests请求的file参数即可。

    注意:文件的上传操作只能通过post()请求方式执行操作

      # 1.整个文件读取
      import requests
      # 打开文件 
      f = open(“d:/test.txt”, “r”) 
      # 包装文件参数 
      file = {“file”:f} 
      # 传递文件     
      response = requests.post(URL, files=file) 
    
      #2.流式数据传递方式
      import requests
      # 打开文件 
      with open(“d:/test.txt”, “r”) as f:    
          response = requests.post(URL, data=f) 
    
  • 2.6 cookie操作
    requests模块中对cookie的操作进行了封装,可以直接通过响应对象的cookie属性进行操作。

      import requests
      response = request(“http://www.badiu.com ” )  
      # 获取整个cookie 
      print(response.cookies)
      # 根据key获取指定的值
      print(r.cookies[“key”])
    
  • 2.7 请求超时设置
    如果要求对于数据操作性能有要求的话,可以通过传递timeout参数数据进行超时时间的设置,超过超时时间的连接自动 抛出异常。

      import requests
      response = requests.get(“http://github.com ” , timeout=0.1)
      异常信息:requests.exceptions.ConnectTimeout
    
  • 2.8 让多个请求包含在一个会话中
    一般情况下,爬虫操作获取目标数据都是短连接,也就是获取数据时连接服务器,每次发起请求就是一个连接,获取到服务器的响应数据后连接自动断开,再次发起请求时又是一个新的请求对象了。

      import requests
      response1 =requests.get() 
      response2 = requests.get()
      #上面的代码中,两次请求就不是同一个会话。
      #如果要进行多个请求包含在同一个会话中,
      #通过requests模块的会话对象Session()构建一个会话请求进行操作即可。
      import requests
      req = requests.Session()
      response1 = req.get()
      response2 = req.get() 
    
  • 2.9 SSL证书设置
    让爬虫程序类似浏览器一样验证https协议访问的网站,当网站的SSL无效时,爬虫无法访问,需要关闭HTTPS的SSL证书验证,通过设置请求参数verify=False关闭该验证。

      response = requests.get(URL,verify=False)   
    
  • 2.10 代理设置
    和urllib2一样,爬虫操作过程中,代理的设置是不可避免的一种技术手段。在requests模块中,通过将代理服务器端口配置在字典中,然后通过proxies参数进行设置即可。

      import requests
      proxies = { "https":"122.72.32.75:80" } 
      response = requests.get(URL, proxies=proxies)
      print (response.text)
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容