相关文章
Python爬取练习:指定百度搜索的内容并提取网页的标题内容
2024-12-21 19:54

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章源于白菜学python ,作者小白菜

刚接触Python的新手、小白,可以复制下面的链接去免费观看Python的基础入门教学视频

 
 

 

hello,大家好。今天为大家带来的是之前分享过的requests库与lxml库的结合使用案例一:指定百度搜索的内容并提取网页的标题内容。好的,废话不多说,直接上主菜。

下面我们来完成我们的第一步,分析我们的目标。大家可千万不要小看这一步哦,因为我们只有思路清晰才能在较短的时间里面写出漂亮的代码。

首先,我们想要请求网页,必须知道我们的url(即网址)是什么。下面,我打开Chrome(谷歌)浏览器,并且打开百度页面,指定搜索“python”,得到下图结果

 

我们看地址一栏,得到下面的结果

 

这么长的内容其实并不是我们都需要的当然你也可以选择不删除,直接使用这个url,但是这个太冗长了,我就不选择这么做了,我们可以尝试去裁剪掉一些可能多余的字母。

当然我们去掉一些可能多余的项也不是乱去的,而是得有一定的依据,这里我们打开浏览器的开发者工具,可以按快捷键F12,或者鼠标右击选择检查。然后选择其中的Network项,再选择Network中的第一个文件。如下图操作

 

 

然后观察右边,将滑动条拉至底部,你会发现,有一个wd:python的内容,显然,这个就是我们搜索的内容,那么我们就要根据这个提示来删除一些不必要的东西。

删除后得到下面的结果

 

然后使用这个url去访问,发现成功访问,好的这个就是我们需要的url。

这个简单,如果你之前看过我写的requests库教程,那么这个headers参数的确认可以直接跳过。

一般来说,我们写headers参数,优先只写User-Agent参数,当单独使用这个参数爬取失败的时候,可以考虑添加其他的headers参数,或者考虑是否是因为其他反爬措施的影响。

下面以图片和文字的方式讲解去哪里获取headers参数内容

 

 

写python程序,有时候很矛盾,是用面向对象呢?还是面向过程呢?其实都随意(我比较随意,因为没有人要求我必须使用什么写,这里我采取面向对象的方式来写这个程序。

 
 

这里有几个原因。

1>我们写代码,一般来说都不可能一次写成功,总是需要修改和测试的。平时我们写代码,自然可以随意的测试运行,都可以检测代码是否正确,但是爬虫却不能这样。因为如果你在较短时间内访问了网站次数过多,可能会导致网站对你做出一些限制性举动,比如:增加验证码判断你是否为人类,严重点的短时间内封禁你的ip。因此,我们将网页源代码写入文件,这样在之后写解析代码的时候就不需要重新去访问网站了。

2>我们以html的形式写入文件,可以用浏览器打开这个文件,可以比较清晰的看出这个文件是否为我们需要爬取的文件。如下图是我爬取后存入的文件以谷歌浏览器打开的结果

 

下面我们来完成获取页面的程序代码

 

这个没什么好说的,是最基础的代码。

 

这个也只是文件的基本操作,没什么好讲解的地方,只是注意我们这里存入的为html文件,而不是txt文件。

这里检测的方式我前面已经提及,就是浏览器打开相应的页面即可。如下图操作

 

打开得到下面的结果

 

说明程序正常运行。

 
 

下面我们来完成最后一步,解析函数的敲写。

首先我们需要分析下,我们想要获取的内容在什么标签里面。分析过程如图个人认为这部分比较重要,因为我初学的时候主要困惑于两点:如何处理失败的请求,解析的思路是什么

 

 

 

好的,分析清楚了我们需要的内容在哪里之后,可以使用lxml来写代码了,如下

 

下面要做的工作就是处理这些字符串,但是这个并不是我们的重点,并且这些数据并不重要,所以就不处理了。

 
 
 

好的,今天的分享就到此为止了。这是最基础的案例,主要目的是让大家先熟悉下,如何使用requests和lxml写一个爬虫程序,其次就是让大家熟悉下分析网站的思路。

    以上就是本篇文章【Python爬取练习:指定百度搜索的内容并提取网页的标题内容】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/quote/8510.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站http://ww.kub2b.com/mobile/,查看更多   
发表评论
0评