python爬虫库之Requests

124 篇文章 5 订阅

虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。所以今天我们来重点了解下这个库。
QQ图片20230621153040.png
Requests是唯一的一个非转基因的 Python HTTP 库,Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。
Requests的一些基本使用方式
如果添加 headers 和查询参数,可以利用 params 参数。

import requests

kw = {'wd':'长城'}

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)

# 查看响应内容,response.text 返回的是Unicode格式的数据
print response.text

# 查看响应内容,response.content返回的字节流数据
print respones.content

# 查看完整url地址
print response.url

# 查看响应头部字符编码
print response.encoding

# 查看响应码
print response.status_code

所有可以爬取的网站都有请求的临界点,当我们对一个网站发起多次请求时,网站发现请求次数超过了临界点,就会自动屏蔽掉我们的IP,这是目标网站的基础反爬策略,对于这种情况,解决方案也其实很简单:只需在请求时通过设置代理IP的方式,就可以解决。那 Requests库里面是如何设置代理IP并访问网站的呢?

    #! -*- encoding:utf-8 -*-

    import requests
    import random

    # 要访问的目标页面
    targetUrl = "http://httpbin.org/ip"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://httpbin.org/ip"

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }


    #  设置IP切换头
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}



    resp = requests.get(targetUrl, proxies=proxies, headers=headers)

    print resp.status_code
    print resp.text

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python爬虫是一种使用Python编程语言编写的程序,用于自动化地从互联网上获取数据。其中,JSON和Requests是两个常用的Python。 JSON是一种轻量级的数据交换格式,常用于将数据从服务器传输到客户端。Python中的json提供了将JSON数据转换为Python对象的方法,以及将Python对象转换为JSON数据的方法。 Requests是一个Python,用于发送HTTP请求和处理响应。它提供了简单易用的API,可以轻松地发送GET、POST、PUT、DELETE等HTTP请求,并处理响应。Requests还支持Cookie、Session、SSL等功能,使得爬虫编写更加方便和高效。 ### 回答2: Python爬虫是指使用Python编写程序自动获取网络上的数据,并将其保存到本地或进行进一步的处理分析。在进行爬取操作时,常常需要用到json和requests模块来进行数据解析和网络访问。 JSON模块是Python标准中解析JSON数据的模块,它可以将JSON格式的数据转换为Python中的数据类型,例如列表、字典等。在爬虫中,常常需要将获取到的JSON数据转化为Python中的数据类型,方便进行下一步的操作。常见的json模块中的方法有: 1. loads():将JSON格式的字符串转化为Python对象 2. dumps():将Python对象转化为JSON格式的字符串 3. load():从文件读取JSON格式的内容并返回Python对象 4. dump():将Python对象写入文件中,以JSON格式保存 requests模块是Python中进行HTTP网络请求的第三方,使用它可以方便地发送HTTP的各种请求,并获取响应内容。在爬虫中,使用requests模块可以模拟浏览器的行为,从而访问目标网站,并获取网站上的数据内容。常见的requests模块中的方法有: 1. get():向目标网站发送GET请求并返回响应内容 2. post():向目标网站发送POST请求并返回响应内容 3. head():向目标网站发送HEAD请求并返回响应头信息 4. request():通过指定method来发送各种类型的HTTP请求 在爬虫的实践中,经常使用requests模块来爬取网页内容,并使用json模块进行数据解析,从而快速地获取目标网站上的数据。但同时需要注意,使用Python爬虫需要遵守法律法规,不得进行非法行为。 ### 回答3: Python是一种广泛使用的编程语言,同时也是爬虫程序员常用的工具之一。Pythonrequests和json模块在Python爬虫开发中有很重要的作用。 首先,requests是用来发送http请求的,它提供了多种方法以及参数来定制请求,比如设置请求头,cookies,代理等。一般在爬虫中使用requests发送请求获取网页数据,并进行解析和提取需要的数据。 Json模块则是Python中用来处理json格式数据的模块,json指的是JavaScript对象表示法(JavaScript Object Notation),是一种轻量级的数据交换格式。在Python爬虫中,网站接口或数据返回一般都是JSON格式的,所以编程者通常使用json来对网页数据进行解析和处理。 一般来说,requests和json模块常一同使用。使用requests发送请求获取到的数据可以使用json模块进行处理,常使用json.loads()方法将json文本内容转换成Python对象,方便对数据进行解析和提取。同时在发送请求时,可以很方便地使用json参数发送JSON格式数据到服务器。 综上所述,requests和json模块是Python爬虫中比较重要的两个模块,常同时使用,一个用来发送请求,一个用来处理响应数据。掌握使用这两个模块对于Python爬虫开发者来说是基本必备的技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值