什么是爬虫?

爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的。所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来。这个时候就要用到requests库了。

python下载

所谓工欲善其事必先利其器,在写python之前,我们需要先把安装环境搭建好,我们直接打开python的官方网站:https://www.python.org/,点击download进行安装,现在最新的版本是3.9.3。

如果是windows电脑,点击64-bit进行下载。

在安装的过程中需要勾选将python加入到环境中,然后再点击下载。

不到一分钟的时间,就下载好了,出现如下页面,表示下载成功。

还有一个方法可以验证是否安装成功,打开CMD命令,输入python,如果出现版本号,则表示对应下载成功。

接下来,我们需要安装一些爬虫用到的库,也就是本章需要介绍的requests库。

requests库的安装

requests库本质上就是模拟了我们用浏览器打开一个网页,发起请求是的动作。它能够迅速的把请求的html源文件保存到本地.

他安装的方式非常简单:我们用pip工具在命令行CMD里进行安装

pip install requests

接着我们看一下是否成功安装了requests

pip list

看一下安装结果,这时候表明已经安装成功了。

requests库的基本使用

接下来我们就开始写代码了,首先打开编辑器,也就是上面下载的python。
找到IDLE,单机打开


再点击左上角的File,点击New File,我们在这里编辑代码,我们可以先点击File,给文件起个名字,我这里就叫test吧,然后再次打开。

首先我们在python编辑器导入requests这个包

import requests

假设我们这里需要将百度的index页面的html源码抓取到本地,并用r变量保存。

r = requests.get("http://www.baidu.com")

最后将下载到的内容打印一下:

print(r.text)

点击Run,里面有个Run Module,点击,如下面图片可以看到,百度的首页源码文件我们已经把他抓取到本地了。

上面的抓取过程中,我们用到了requests库的get方法,这个方法是requests库中最常用的方法之一。

他接受一个参数(url)并返回一个HTTP response对象。与get方法相同的,requests库还有许多其他常用方法:

下面我们来详细了解一下 requests.get 这个方法:

这个方法可以接收三个参数,其中第二个默认为None, 第三个可选.

requests.get(url, params=None, **kwargs)

作用是模拟发起GET请求,模拟获取页面的url链接。

下面,我们来着重讲一下 **kwargs 这个参数

  • kwargs: 控制访问的参数,均为可选项

  • params : 字典或字节序列,作为参数增加到url中

  • data : 字典、字节序列或文件对象,作为Request的内容 json : JSON格式的数据,作为Request的内容

  • headers : 字典,HTTP定制头

  • cookies : 字典或CookieJar,Request中的cookie

  • auth : 元组,支持HTTP认证功能

  • files : 字典类型,传输文件

  • timeout : 设定超时时间,秒为单位

  • proxies : 字典类型,设定访问代理服务器,可以增加登录认证

  • allow_redirects : True/False,默认为True,重定向开关

  • stream : True/False,默认为True,获取内容立即下载开关

  • verify : True/False,默认为True,认证SSL证书开关

  • cert : 本地SSL证书路径

  • url: 拟更新页面的url链接

  • data: 字典、字节序列或文件,Request的内容

  • json: JSON格式的数据,Request的内容

下面来介绍下,常用的两个控制访问参数:

1. 假设我们需要在GET请求里自定义一个header头文件:

import requestshd = {'User-agent':'123'}
r = requests.get('http://www.baidu.com', headers=hd)
print(r.request.headers)

结果如下

2. 假设我们要自定义一个代理池
为什么有时候需要添加代理池proxies这个参数呢,是因为在爬取网页的过程中,有些网站对访问的IP控制较为严格,我们需要添加很多具有IP的代理机制,这样才可以骗过待爬取的网站。后面有章节会有实战案例,详细讲解这个代理池的用法,先留个坑。

pxs = { 'http': 'http://user:pass@10.10.10.1:1234','https': 'https://10.10.10.1:4321' }
r = requests.get('http://www.baidu.com', proxies=pxs)

接下来,我们详细了解Response对象

import requests
r = requests.get("http://www.baidu.com")#HTTP请求的返回状态,比如,200表示成功,404表示失败
print (r.status_code)#HTTP请求中的headers
print (r.headers)#从header中猜测的响应的内容编码方式
print (r.encoding)#从内容中分析的编码方式(慢)
print (r.apparent_encoding)#响应内容的二进制形式
print (r.content)

下面介绍下,requests抓取网页的通用框架,这是一个最简单的爬虫模板,也是我们后面在实战案例中经常用到的基础代码,可以说万变不离其宗。

下面这段代码什么意思呢,我来简单解释下,url代表我们要爬取的网站地址,首先我们用requests去爬取这个地址,给它30秒的时间延迟,如果在30秒内可以访问进去,并且获取的状态码是200,那就返回访问的网页内容,否则就返回一个失败的信息。

import requestsdef getHtmlText(url):try:r = requests.get(url, timeout=30)# 如果状态码不是200 则应发HTTOError异常r.raise_for_status()# 设置正确的编码方式r.encoding = r.apparent_encodingreturn r.textexcept:return "Something Wrong!"

好了关于requests库我们今天就写到这,这是一个非常强大的库,

更多的功能大家可以去看一下官方的文档:快速上手 - Requests 2.10.0 文档

下一章节,我将讲解另一个常见的爬虫BeautifulSoup库。

从零开始写Python爬虫---1.1 requests库的安装与使用相关推荐

  1. 从零开始写Python爬虫 --- 1.2 BS4库的安装与使用

    什么是Beautiful Soup Beautiful Soup库一般被称为bs4库,支持Python3,是我们写爬虫非常好的第三方库.因用起来十分的简便流畅.所以也被人叫做"美味汤&quo ...

  2. python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载

    从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载Ehco 5 个月前 本来只是准备做一个爬起点小说名字的爬虫,后来想了一下,为啥不顺便把小说的内容也爬下来呢?于是我就写了这个 ...

  3. python爬虫代理的使用_从零开始写Python爬虫 --- 2.4 爬虫实践:代理的爬取和验证...

    爬网站的时候,由于各种原因,ip被锁了,这个时候我们就需要通过代理来突破封锁.网上有很多代理网站,付费和免费的都有,这次我们就来写一个scrapy爬虫,爬一些免费的代理下来用. 目标分析: 本次爬取了 ...

  4. 从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载

    从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载 Ehco 5 个月前 本来只是准备做一个爬起点小说名字的爬虫,后来想了一下,为啥不顺便把小说的内容也爬下来呢?于是我就写了这 ...

  5. 从零开始写Python爬虫 --- 1.5 爬虫实践: 获取百度贴吧内容

    从零开始写Python爬虫 --- 1.5 爬虫实践: 获取百度贴吧内容 Ehco 5 个月前 经过前期大量的学习与准备,我们重要要开始写第一个真正意义上的爬虫了.本次我们要爬取的网站是:百度贴吧,一 ...

  6. python 模拟浏览器selenium_从零开始写Python爬虫 --- 3.1 Selenium模拟浏览器

    本来说好要写Mechanize模拟浏览器的,结果一看居然只支持2.x版本的Python,而且已经长久没有更新维护了,本着学新不学旧的原则,我决定跳过他,直接开学Selenium(其实就是我懒,逃 Se ...

  7. Python爬虫利器一Requests库的用法

    之前我们用了 urllib 库,这个作为入门的工具还是不错的,对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么这一节来简单介 ...

  8. python爬虫软件-从零开始写Python爬虫,四大工具你值得拥有!

    如果你正在学习编程,那么"爬虫"绝对是你不可忽视的.那么,学习python爬虫之前需要哪些准备? 一颗热爱学习,不屈不挠的心 一台有键盘的电脑(什么系统都行.我用的os x,所以例 ...

  9. Python爬虫--- 1.2 BS4库的安装与使用

    原文链接https://www.fkomm.cn/article/2018/7/20/17.html Beautiful Soup 库一般被称为bs4库,支持Python3,是我们写爬虫非常好的第三方 ...

最新文章

  1. TOF摄像机可以替代Flash激光雷达吗?
  2. html div数据替换,javascript – 将html添加到div而不替换其中的当前内容
  3. 限招2019应届计算机毕业生,2019年计算机专业应届毕业生自我鉴定
  4. Windows x64内核学习笔记(一)—— 环境与配置
  5. ArcMap下栅格图象矢量化步骤:
  6. Windows 环境变量的两点说明
  7. pcb天线设计和hfss仿真分析实例_5G天线与多天线系统设计
  8. linux开发板增加adb功能
  9. ps考证电脑怎么改卷
  10. java 里大于且小于_java-浮点数大于或小于零
  11. Drupal独到的编程思想
  12. uber_您需要了解的有关Uber驾驶的知识
  13. 给大家推荐一本书:你只是看起来很努力
  14. CDH-TXKT-集群的监控和故障诊断
  15. 浅谈二叉查找树、AVL树、红黑树、B树、B+树的原理及应用
  16. 英文名大全及含义(女)
  17. EXCEL数据计算结果不对
  18. 微信小程序(三)分类界面
  19. 客户端时不时接收到10054错误
  20. Java设计模式学习2:行为模式

热门文章

  1. 新疆计算机系统集成资质年审,新疆涉密信息系统集成资质
  2. python做excel数据分析带gui_Python进阶量化交易专栏场外篇25-GUI工具实现excel功能...
  3. 浙江大学计算机学院博士论文格式,浙江大学外语学院英文版博士学位论文格式.pdf...
  4. 配置网卡和修改ip地址
  5. SuperMap 许可简介
  6. 计算机组成:cpu的功能和组成
  7. win7不能在本地计算机启动防火墙,win7操作中心无法启用防火墙怎么解决
  8. redis管理工具rdm安装;另一个管理工具medis
  9. Windows Media Player Network Sharing Service 启动失败
  10. 微信小程序之网易云音乐小案例