url获取网站信息不包含网页源文件内的标签_今天教大家一招最简单的爬虫!利用urllib进行简单的网页抓取!...

news/2024/5/10 0:38:44/文章来源:https://blog.csdn.net/weixin_39887926/article/details/111122167
8172bfd2a9971995c187b4b6937911cc.png
6bd29e428cd4334894a2c87572616f7e.png

(1)protocol:第一部分就是协议,例如百度使用的就是https协议;

(2)hostname[:port]:第二部分就是主机名(还有端口号为可选参数),一般网站默认的端口号为80,例如百度的主机名就是www.baidu.com,这个就是服务器的地址;

(3)path:第三部分就是主机资源的具体地址,如目录和文件名等。

网络爬虫就是根据这个URL来获取网页信息的。

简单爬虫实例

在Python3.x中,我们可以使用urlib这个组件抓取网页,urllib是一个URL处理包,这个包中集合了一些处理URL的模块,如下:

05d5fb547e3f0747e58c8e88f1b81c19.png

进群:960410445 即可获取源码!

1.urllib.request模块是用来打开和读取URLs的;

2.urllib.error模块包含一些有urllib.request产生的错误,可以使用try进行捕捉处理;

3.urllib.parse模块包含了一些解析URLs的方法;

4.urllib.robotparser模块用来解析robots.txt文本文件.它提供了一个单独的RobotFileParser类,通过该类提供的can_fetch()方法测试爬虫是否可以下载一个页面。

我们使用urllib.request.urlopen()这个接口函数就可以很轻松的打开一个网站,读取并打印信息。

5048e43999092c105f30d3b218828887.png

urlopen有一些可选参数,具体信息可以查阅Python自带的documentation。

了解到这些,我们就可以写一个最简单的程序,文件名为urllib_test01.py,感受一个urllib库的魅力:

dcd4f8a6e4891739c8742999c0fab84d.png

urllib使用使用request.urlopen()打开和读取URLs信息,返回的对象response如同一个文本对象,我们可以调用read(),进行读取。再通过print(),将读到的信息打印出来。

运行程序ctrl+b,可以在Sublime中查看运行结果,如下:

8fd876f8f610a7a429f793f129ec1f70.png

也可以在cmd(控制台)中输入指令:

python urllib_test01.py

运行py文件,输出信息是一样的,如下:

efcd8d12a001c6fdf042600b520032c8.png

其实这就是浏览器接收到的信息,只不过我们在使用浏览器的时候,浏览器已经将这些信息转化成了界面信息供我们浏览。

当然这些代码我们也可以从浏览器中查看到。

例如,使用谷歌浏览器,在任意界面单击右键选择检查,也就是审查元素(不是所有页面都可以审查元素的,

例如起点中文网付费章节就不行.),以百度界面为例,截图如下:

52fd52782094a8b452a5ac9aedd0e182.png

可以看到,右边就是我们的审查结果。我们可以在本地,也就是浏览器(客户端)更改元素,但是这个不会上传到服务器端。例如我可以修改自己的支付宝余额装一装,比如这样:

f4c84e588e886396c8ca5e5ea349ba08.png

我实际有这些钱吗?显然苦逼的我,是不会有这些钱的,我只不过是修改了下审查元素的信息而已。

有些跑偏,不过说的道理就是,浏览器就是作为客户端从服务器端获取信息,然后将信息解析,再展示给我们的。

回归正题,虽然我们已经成功获取了信息,但是显然他们都是二进制的乱码,看起来很不方便。我们怎么办呢?

我们可以通过简单的decode()命令将网页的信息进行解码,并显示出来,我们新创建一个文件,命名为urllib_test02.py,编写如下代码(还是以百度翻译网站fanyi.baidu.com为例):

33b84023ab065f47ea14fa8f0c5e9945.png

这样我们就可以得到这样的结果,显然解码后的信息看起来工整和舒服多了:

f6f1df1e14f247fae8c5a453578e5883.png

当然这个前提是我们已经知道了这个网页是使用utf-8编码的,怎么查看网页的编码方式呢?

需要人为操作,且非常简单的方法是使用使用浏览器审查元素,只需要找到head标签开始位置的chareset,就知道网页是采用何种编码的了。如下:

00b6123abf41be383636a132d6cba359.png

这样我们就知道了这个网站的编码方式,但是这需要我们每次都打开浏览器,并找下编码方式,显然有些费事,使用几行代码解决更加省事并且显得酷一些。

自动获取网页编码方式的方法

获取网页编码的方式有很多,个人更喜欢用第三方库的方式。

首先我们需要安装第三方库chardet,它是用来判断编码的模块,安装方法如下图所示,只需要输入指令:

54603185700a88854a8431586402f72e.png

安装好后,我们就可以使用chardet.detect()方法,判断网页的编码方式了。

至此,我们就可以编写一个小程序判断网页的编码方式了,新建文件名为chardet_test01.py:

3cade278ba37e80ef55b3a32844fb848.png

运行程序,查看输出结果如下:

4c38a3a5d85e9119adb93485cc31a1e0.png

返回的是一个字典,这样我们就知道网页的编码方式了,通过获得的信息,采用不同的解码方式即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_730131.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线音乐网站【04】Part two 功能实现

今天把剩余功能的具体实现补充总结,如果你想对整个小项目有清楚的了解,建议去看下前几篇博客。 1.在线音乐网站(1)需求和功能结构 2.在线音乐网站(2)数据库和开发环境 3.在线音乐网站(3&#xf…

js外链跳转_贴吧外链,百度贴吧推广对SEO有用吗?

对于SEO而言,我们的兴趣爱好更多的是大于工作,因此,在很长一段时间里,我会花费大量的时间去测试与研究,相关的优化策略是否具有实际的操作价值。特别是在外链增长这一块,虽然,搜索引擎一在试图调…

centos删除mysql服务器上,centos如何删除mysql_网站服务器运行维护,centos

docker如何运行项目_网站服务器运行维护docker运行项目的方法是:1、进入存放自己项目war的目录;2、build镜像;3、运行docker容器;4、执行命令【192.168.1.178:8888/myproject】访问项目即可。彻底卸载mysql:卸载mysql安…

php fpm独立用户,PHP网站简单架构 – 单独跑php-fpm

这个架构比较简单,不做过多的说明前端1台Nginx:负载均衡nfs中间2台php:php-fpm后端1台数据库:MySQL安装略,参考《lnmp最新源码一键安装包》192.168.112安装Tengine192.168.1.113/192.168.1.115安装php192.168.1.114安装MySQLnfs配…

tocat服务器怎么登陆网站,如何登陆Tomcat的控制台(Web管理界面)

当我们成功安装启动Tomcat服务后,在浏览器输入http://localhost:8080(8080是Tomcat的默认端口,可自行修改)回车,可看到如下界面右上角可以看到三个控制台:Server Status、Manager App、Host ManagerServer Status:用于…

全球银行网站成黑客主攻目标 阿里云提供安全防御应急方案

近日,阿里云监控发现,匿名者(Anonymous)组织成员正在发起针对全球中央银行网站的攻击行动,截止目前,国内有超过2家以上的重要网站被攻击,攻击特征主要为DDoS攻击和CC攻击。 此次事件中&#xff…

云服务器的维护方法,网站服务器的维护方法

网站服务器的维护方法 内容精选换一换云解析服务提供不同网络场景中的解析服务。云解析服务在不同的使用场景下,可以选择多种类型的解析方式,请参见表1。如果用户已注册华为云,可直接登录管理控制台,访问云解析服务。如果用户没有…

移动端Viewport 使用rem来开发移动端网站

移动端Viewport & 使用rem来开发移动端网站 Viewport大神 无双 的精彩解释 具体参数各型号是否支持参见: http://www.cnblogs.com/2050/p/3877280.html#commentform 摘录: 移动设备上的viewport: 设备的屏幕上能用来显示我们的网页的那一块区域 设备像素比: docment.device…

python爬取两个网站_python网络爬虫之使用scrapy自动爬取多个网页

前面介绍的scrapy爬虫只能爬取单个网页。如果我们想爬取多个网页。比如网上的小说该如何如何操作呢。比如下面的这样的结构。是小说的第一篇。可以点击返回目录还是下一页对应的网页代码:我们再看进入后面章节的网页,可以看到增加了上一页对应的网页代码…

网站导航颜色停留_如何提升网站用户体验度

所谓的用户体验就是用户进入你网站之后的感受,具体的表现为用户在你网站停留的时间越短,打开的页面数量越少,就说明你的网站不太受用户所喜欢。相反用户进入你网站之后停留的时间越长就说明你的网站粘度比较好,能够为用户带来一些…

seo外链网站大全_这些站内、站外SEO优化细节你注意了吗?

这篇文章分享一下最基础的东西,也是最值得注意的细节,只要你做好这些细节,相信你就能做好SEO优化。第一、站内优化需要注意的几个地方1、URL:标准化,唯一化,静态化2、导航:主导航,面…

【自然语言处理入门系列】推荐:paperwithcode,一个适合关注人工智能最新进展的网站

【自然语言处理入门系列】推荐:paperwithcode,一个适合关注人工智能最新进展的网站paperswithcode使用示例Browse State-of-the-Artpaperswithcode 今天要给大家推荐的网站是paperswithcode,也就是https://paperswithcode.com/,一…

网站留言板防重复留言_成都玩具网站建设栏目规划设计分享!

伴随着互联网的不断发展,整个世界都被数据连接起来了,让大家足不出门就可以购买到全世界任何地方的商品,玩具行业也不能避开这一事实。下面笔者就成都玩具网站建设基本思路与大伙儿分亨一下。成都玩具网站建设成都玩具网站建设导航栏目架构设计1、市场销售玩具的客户…

如何移除网站Response Headers中的X-Powered-By信息?

X-Powered-By是网站响应头信息其中的一个,出于安全的考虑,一般会修改或删除掉这个信息。 如果你用的node.js express框架,那么X-Powered-By就会显示Express。如果用的thinkjs,那么X-Powered-By就会显示thinkjs.1... 最近&#xff…

php搭建文章类网站教程,PHPstudy搭建wordpress本地网站教程 | 自媒体培训教程-君墨...

我们在正式搭建网站之前往往会搭建一个本地网站。 这个网站只能在我们自己电脑上打开,就像我们玩电脑游戏中的单机游戏。 这个网站不能联网,你能看,别人不能看。这样做的好处是,我们可以在这里优化网站布局。你想要什么样的功能&…

服务器稳定对页面的排名很重要,网站关键词排名的影响因素

影响网站关键词排名的因素有哪些?在SEO优化中,优化师非常关心网站关键词在百度主页上的排名。就让我们一起来了解一下影响网站关键词排名的因素吧!1、网站服务器稳定性网站服务器的稳定性和速度直接影响到网站关键词排名。如果蜘蛛抓取你的网…

linux shell基础测试题与答案,Linux Shell - Linux操作系统基础进阶练习题_Linux教程_Linux公社-Linux系统门户网站...

Linux操作系统基础进阶练习题Linux Shell[日期:2009-06-01]来源:Linux社区作者:Linux编辑[字体:大 中 小]linux shell1).更改Shell1.1).利用PS1变量改变命令提示,新提示符包括使用者帐号名称(u),主机名(h)&…

一元建站-基于函数计算 + wordpress 构建 serverless 网站

前言 本文旨在通过 快速部署一个 wordpress 网站到阿里云函数计算平台 这个示例来展示 serverless web 新的开发模式, 包括 FUN 工具一键初始化 NAS, 同步网站到 NAS, 一键部署等能力, 展现函数计算的开发敏捷特性、自动弹性伸缩能力、免运维和完善的监控设施。 相…

(转)网站速度优化技巧:Nginx设置js、css过期时间

网站速度优化技巧:Nginx设置js、css过期时间 原文:http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for-js-and-css.html 配置Nginx expires缓存实现性能优化 原文:https://blog.webfsd.com/post_pei-zhinginx-expires-…

保护网站访问安全--阿里云DNS正式支持DNSSEC

近日,云解析DNS正式发布DNSSEC(Domain Name System Security Extensions)功能。DNSSEC功能的发布,意味着云解析DNS在保护网站访问安全的方面,又前进了一大步。那到底什么是DNSSEC,这项技术的给我们带来了什么好处呢。接下来我们一…