什么是爬虫?

爬虫本质上是模拟人浏览信息的过程,只不过他通过计算机来达到快速抓取筛选信息的目的。所以我们想要写一个爬虫,最基本的就是要将我们需要抓取信息的网页原原本本的抓取下来。这个时候就要用到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. “数据科学家”或许不再性感,但“数据团队”的产业化才刚开始 | 专访领英全球数据科学团队负责人...
  2. 网站优化排名提升不发愁,这几点你掌握了吗?
  3. php swoole实现定时任务,Swoole实现任务定时自动化调度详解,来学习下
  4. 部署在CloudFoundry上的nodejs如何正确使用port环境变量
  5. Kafka启动出现Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Pr
  6. 计算机it岗考试试题,计算机IT职称考试试题及其答案.doc
  7. Struts2的文件上传
  8. [LeetCode]129. Sum Root to Leaf Numbers路径数字求和
  9. 去掉serialVersionUID的警告
  10. Listary——好用到哭的高效快速搜索工具
  11. 用于打开文件的php函数是,PHP文件操作(PHP读写文件)
  12. python京东预约抢购_Python参考代码:京东抢券脚本
  13. Macsome iTunes Converter Mac(DRM移除和音乐转换器)
  14. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 D. 白色相簿
  15. ubuntu 16.04-设置合上笔记本盖子不休眠
  16. vue个人博客开发记录-文件上传vue-quil-editormongo多层查询(二)
  17. 【CSDN英雄会】沪江徐宜生:掌握工具使用技巧,是提高工作效率的最佳途径
  18. vue用路由守卫进行登录后的路由跳转
  19. 计算机win7自动休眠设置在哪里设置密码,win7系统设置待机密码的简单方法(图文)...
  20. edb mysql_通过MTK迁移Mysql到EDB实战指南

热门文章

  1. ITSS资质办理流程是什么?
  2. 天作之合:水果与朗姆酒
  3. 网络故障的技术一些东东
  4. jpa Specification fetch查询报错,query specified join fetching, but the owner of the fetched association
  5. 电商直播元年 微媒云播打造私域流量火爆商业新模式
  6. NX二次开发-UFUN导入图框UF_PART_import
  7. 记一次被“呼死你”电话骚扰的反骚扰经历
  8. Mac下安装与使用Medis
  9. 快速下载||AnotherRedisDesktopManagerMedis-Redis可视化工具
  10. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_0900_as_ci,IMPLICIT) for operat