使用Python Requests模块+BeautifulSoup模块爬取网站_beautifulsoup爬取知网

Request

在向服务器请求的时候,一个Request的行为实际上包含了不同的方法,在HTTP 1.0的时代,实际上只有GET、POST、HEAD三种方法。

然后到了HTTP 1.1之后,也就是现在不叫普及的协议之后,又增添了PUT、OPTIONS、CONNECT、TRSCE、DELETE总共加起来现在是有8中方法。

我们在这里并不会展开细致的讲解,你听到这里的时候可能会感到比较困惑,为什么一种请求还有这么多种方法,实际在这里来讲我们要了解的不需要这么多,我们只需要知道我们向服务器去请求的时候GET和POST是最常用的两种方法。

简单的来说99%的网页都可以使用这两种方法达成浏览,实际上他们的功能有很多地方很相像,但是却有着不同的作用,比如我们去点击一个页面,点击一个按钮的时候实际上是一个GET,然后再比如我们进行发微博,这种行为就是一种POST行为,但是具体的一些细节我们不展开。

我们使用爬虫抓取页面实际上也是模仿的这两种方式,而对于我们使用爬虫来讲,知道一个GET方法实际上90%以上的网站我们就都能够顺利的爬取到了,所以说接下来的Request这部分我们将着重展开,GET的使用方法,使用GET的request的请求,最简单来讲包含这些信息,使用它的方法在最左端的get,请求网址的指向与page_one.html,我们知道这是一个网页,使用什么样的协议,就是HTTP 1.1,以及他的这个主网址在哪里,相当与是host后面的后缀形成了你要请求的这个网页链接,这是一个请求,最简单的要发送的信息包含在内,当然使用request的话我们还可以去向服务器发送更多信息,比如说你是谁,你在哪儿,你是处于什么状态,还有你甚至是用什么浏览器,这些信息全部可以通过request已经发送,你发送不同的这些信息给浏览器浏览器会给你反馈不同的结果,比如说我们日常生活中,在使用手机浏览器和使用PC端浏览器所看到的页面结构内容是不一样的,这就是因为我们再使用不同浏览器向网页进行请求的时候,服务器识别了我们请求的客户端到底是什么,然后决定给我们要发送什么形态的网页,开的网页,这就是在一个简单的request中,加上了不同的信息呈现不同的结果。

Response

response,是网站回应给我们的信息,而简单的来说,我们在之前的学习中爬取的是一个本地的网页,爬取的是一个本地的网页,这些网页如果在网络环境中,实际上是在我们向网站提出一个request,之后然后服务器会把我们请求的这个网页以response的形式去发送给我们,我们会得到了一些基本信息比如说,状态码,告诉我如果是200的话那么意味着我的一次请求成功, 如果我的请求失败应该返回给我403或404。如果请求成功之后,后续应该会把网页中的元素陆陆续续地加载,这也就是我们这节的依据,再一次request的请求之后我们把网站返回给我们的这个网页进行解析,分析它,去抓取我们想要的数据。

刚才那简单的叙述了一下request 和 response的原理,那么接下来我们打开浏览器来看一些这种比较抽象的概念是如何在真实的网络环境中发生的,我们首先打开一个网页,右键点击检查(或者按F12)进入到开发者模式,我们可以看到网页的源代码已经加载出来了,这时候我们去监视这个网络行为,点击下图中选项栏中的Network,然后点击刷新网页,网页被重新加载。

这时候我们我们可以看到网页中的加载的信息都已经显示在这里。

这时候我们点击途中的第一个网页,在headers中,request和response的信息全部记载在这个监视器中,我们点击Request Headers,在这里我们可以看到网页请求的方式以及一些其他的特定的信息都已显示在这里。下图中我们可以看到这个网页的cookie。

下图是Request中的User-Agent是我们使用代理的名称,以及地址host。

接下来我们再看选项栏中Response中的信息,实际上response的主体信息就是我们这个网页的本身,这边我么可以看到response加载的网页源码和我们之前使用检查打开看到的网页源码是一致的。

进行网页中信息爬取

这个就是Request和Response这种交互行为在浏览器中的演示,那么接下来我们就是通过利用一种与服务器的交互行为来爬去我们想要的这个数据信息,在我们写查询代码之前,我们先来看一下我们要爬去的网页,筛选一下我们需要的元素。我们需要的元素是图片信息,以及图片名称,酒店个数。

1.使用Request向服务器请求获取网页内容

2.使用BeautifulSoup解析页面

3.描述要爬取元素的位置

首先是我们需要的标题,我们根据上节课学习的方法拿到一个标题的CSS Selector,去掉特殊的路径(学习过Html就应该明白),找到所有标题,我们定位一个元素就找到它唯一性的特征。

查找图片的时候,我们为了找到我们需要的图片,我们可以指定图片的高和宽来查找图片

酒店个数
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值