柒微网络

【python爬虫】入门第一课之request库

2019-10-05 大数据 107

1.Requests库的7个主要方法

安装 pip install requests

requests.request()     #构造一个请求,支撑以下各方法的基础方法
requests.get()         #获取HTML网页的主要方法,对应于HTTP的GET
requests.head()        #获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post()        #向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put()         #向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch()       #向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete()      #向HTML页面提交删除请求,对应于HTTP的DELETE



2.get方法,最常用

r=requests.get(url,param=None,**kwargs)   #param可以是字典或者字节流

r返回结果的5个常用属性
r.status.code           #HTTP请求的返回状态,200表示连接成功,404表示失败
r.text                  #HTTP响应内容的字符串形式,即,url对应的页面内容
r.content               #HTTP响应内容的二进制形式
r.encoding              #从HTTP header中猜测的响应内容编码方式
r.apparent_ encoding    #从内容中分析出的响应内容编码方式(备选编码方式)


3.异常处理

r.raise_for_status()    如果不是200, 产生异常requests.HTTPError

requests.ConnectionError       网络连接错误异常,如DNS查询失败、拒绝连接等

requests.HTTPError                 http错误异常

requests.URLRequired             url缺失异常

requests.TooMany Redireets   超过最大重 定向次数,产生重定向异常

requests.C onnectTimeout       连接远程服务器超时异常

requests.Timeout                      请求URL超时,产生超时异常


4.实战

示例1.抓取京东商品详情

示例2.抓取亚马逊商品详情

a.发送请求

r =requests. get ("https: //www . amazon . cn/gp/product/B01M8L5Z3Y")

b.查看状态码

r.status_code   #f返回503

c.打印内容,出现报错


d.查看请求的头部

r.request.headers

e.修改User-Agent 请重新发送请求

kv={user-agent' : 'Mozilla/5.0' }
r=requests.get (ur1 , headers=kv)


全部代码

import requests
url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y"
try :
  kv = { 'user-agent' : 'Mozilla/5.0' }
  r = requests .get (url ,headers=kv)
  r.raise_for_status()
  r. encoding = r. apparent_encoding
  print (r. text [1000:2000])
except:
  print ("爬取失败")


示例3.百度360自动搜索

  百度的关键词接口:http://www.baidu.com/s?wd=keyword

  360的关键词接口:http://www.so.com/s?q=keyword

  代码示例:



示例4下载远程图片到本地

import os
import requests
url = "http://image.nationalgeographic.com.cn/2017/0211/20170211061910157.jpg"
root = "D://pics//"
path = root + url.split('/') [-1] 
try :
  if not os.path.exists(root) :
    os . mkdir(root)
    if not os . path. exists(path) :
      r = requests.get(url)
      with open(path,'wb' ) as f:
        f.write(r . content)
        f.close()
        print("文件保存成功")
  else :
    print("文件已存在")
except :
  print ("爬取失败")


转载请说明来源于"柒微博客"

本文地址:http://7we.net/article-143.html


文章评论

请您先登录|注册后再进行回复
回复区