在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用requests库吧.

配置好python环境后,python配置大家应该都会,至于path路径下载安装界面右下角就有add to path 很简便,这里主要是window环境下的使用,至于Linux环境,我暂时还没有深入了解,用yum install或者  wget命令都是可行的.

 在window环境下,推荐是用pip进行安装,因为便捷而且不用考虑文件的解压路径:

pip install requests

  首先requests有文档说明,requests文档 多观察库文档,有利于我们了解该库创建者的意图,现在可以尝试使用requests库获取一个网页的源代码了:代码如下

import requests

url='https://www.cnblogs.com/hxms/p/10412179.html'

response=requests.get(url)

print(respones.text)

requests code

但是为了更好获取源代码,还需要对该代码进行一定的优化,比如是否考虑statue_code==200,响应码是否正常,正常还可以请求该网页,否则返回错误原因,代码如下:

import requests

def get_page():

    try:

        url="https://www.cnblogs.com/hxms/p/10412179.html"

        response=requests.get(url)

        if response.status_code==200:

            return response.text

    except requests.ConnectionError:

        return None

get_page()

requests Codes

 运用了get_page的函数,对requests的方法进行优化,最后还可以添加main函数进行打印输出

def main():

    data=get_page()

    print(data)

if __name__ == "__main__":

    main()

 进行如下

这样就可以简单的获取网页的源代码了,但是在现实过程中,网页是经过js渲染的,即可以理解为该HTML只是个空体,只是引用了某个js文本,这样就会造成requests请求的源代码出现错误,造成后期抓不到想要的数据,不过没有关系,F12提供了强大的抓包工具,无论是Ajax或者是直接js渲染的网页,我们都有相应的解决方法,例如利用selenium库进行自动化运行,抑或是xhr文件里的json字典格式化存储,都是可以解决这些问题的.

 关于requests库还有许多参数没用上,比如proxies(代理,抓取数量过大时会导致该请求网址对我们的IP进行封禁,导致304请求失败),headers(头请求),现在许多网页会设置反爬虫设置,如果你不加请求头的话,服务器是不会返回任何信息给你的,但是requests库为你提供了伪装浏览器的方法,运用User-Agent;host等运用字典添加进去,更容易获取我们想要的信息.更多方法可以参考上面的requests文档.

python爬虫之requests库的更多相关文章

  1. Python爬虫之requests库介绍(一)

    一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...

  2. Python爬虫:requests 库详解,cookie操作与实战

    原文 第三方库 requests是基于urllib编写的.比urllib库强大,非常适合爬虫的编写. 安装: pip install requests 简单的爬百度首页的例子: response.te ...

  3. Python爬虫之requests库的使用

    requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 "HTTP for ...

  4. 【Python爬虫】Requests库的基本使用

    Requests库的基本使用 阅读目录 基本的GET请求 带参数的GET请求 解析Json 获取二进制数据 添加headers 基本的POST请求 response属性 文件上传 获取cookie 会 ...

  5. python爬虫(1)requests库

    在pycharm中安装requests库的一种方法 首先找到设置 搜索然后安装,蓝色代表已经安装 requests库中的get请求 与HTTP协议相对应,requests库也有七种请求方式. 获取ur ...

  6. python爬虫之requests库介绍(二)

    一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...

  7. Python爬虫之Requests库的基本使用

    import requests response = requests.get('http://www.baidu.com/') print(type(response)) print(respons ...

  8. Python爬虫系列-Requests库详解

    Requests基于urllib,比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. 实例引入 import requests response = requests.get( ...

  9. python下载安装requests库

    一.python下载安装requests库 1.到git下载源码zip源码https://github.com/requests/requests 2.解压到python目录下: 3.“win+R”进 ...

随机推荐

  1. PAT——1021. 个位数统计

    给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字 ...

  2. Linq的左链接

    地址:https://docs.microsoft.com/en-us/dotnet/csharp/linq/perform-left-outer-joins ①创建两张表和一些基础数据做我们的测试 ...

  3. Java 8-lambda表达式及方法引用

    Lambda表达式 Lambda表达式是一个类似于匿名函数的语法糖,它实现一个函数式接口,它允许我们将函数当成参数传递给某个方法,或者把代码本身当作数据处理. 一个 Lambda 表达式可以有零个或多 ...

  4. JS基础——事件操作总结

    通用事件绑定   function bindEvent(elem,type,fn) { elem.addEventListener(type,fn); } let a =document.getEle ...

  5. 832. Flipping an Image (5月22日 )

    解答 class Solution { public: vector<vector<int>> flipAndInvertImage(vector<vector<i ...

  6. ABAP术语-URL

    URL 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114193.html Uniform Resource Locator (U ...

  7. 大数据学习--day13(字符串String--源码分析--JVM内存分析)

    字符串String--源码分析--JVM内存分析 String 类的对象 , 是不可变的字符串对象呢 这个不可变很重要,之后要讲的intern()也离不开它的不可变性. https://www.cnb ...

  8. 调试日志——基于stm32的智能声光报警器(一)

    今天新画的PCB板子到了,到了手中焊好电源部分测试,没有问题. 测试了下载程序,没有问题.时钟电路供电电路正常. 但是在程序运行的时候发现了问题,程序下载进去了却不运行. 这时候就要从原理图来找问题了 ...

  9. 嵌入式C语言自我修养 07:地址对齐那些事儿

    7.1 属性声明:aligned GNU C 通过 __atttribute__ 来声明 aligned 和 packed 属性,指定一个变量或类型的对齐方式.这两个属性用来告诉编译器:在给变量分配存 ...

  10. numpy.random.shuffle()与numpy.random.permutation()的区别

    参考API:https://docs.scipy.org/doc/numpy/reference/routines.random.html 1. numpy.random.shuffle()   AP ...