python最简单的网页爬虫教程

在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。下面这篇文章就来给大家介绍了关于利用python实现最简单的网页爬虫的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。最近对python爬虫有了强烈地兴趣,在此分享自己的学习路径,欢迎大家提出建议。我们相互交流,共同进步。话不多说了,来一起看看详细的介绍:

1.开发工具

笔者使用的工具是sublime text3,它的短小精悍(可能男人们都不喜欢这个词)使我十分着迷。推荐大家使用,当然如果你的电脑配置不错,pycharm可能更加适合你。

立即学习“Python免费学习笔记(深入)”;

sublime text3搭建python开发环境推荐查看这篇文章:

[sublime搭建python开发环境]

爬虫顾名思义,就是像虫子一样,爬在Internet这张大网上。如此,我们便可以获取自己想要的东西。

既然要爬在Internet上,那么我们就需要了解URL,法号“统一资源定位器”,小名“链接”。其结构主要由三部分组成:

(1)协议:如我们在网址中常见的HTTP协议。

(2)域名或者IP地址:域名,如:www.baidu.com,IP地址,即将域名解析后对应的IP。

(3)路径:即目录或者文件等。

3.urllib开发最简单的爬虫

(1)urllib简介

Module Introduce

urllib.errorException classes raised by urllib.request.urllib.parseParse URLs into or assemble them from components.urllib.requestExtensible library for opening URLs.urllib.responseResponse classes used by urllib.urllib.robotparserLoad a robots.txt file and answer questions about fetchability of other URLs.

(2)开发最简单的爬虫

百度首页简洁大方,很适合我们爬虫。

爬虫代码如下:

from urllib import requestdef visit_baidu(): URL = "http://www.baidu.com" # open the URL req = request.urlopen(URL) # read the URL  html = req.read() # decode the URL to utf-8 html = html.decode("utf_8") print(html)if __name__ == '__main__': visit_baidu()

登录后复制

结果如下图:

python最简单的网页爬虫教程

我们可以通过在百度首页空白处右击,查看审查元素来和我们的运行结果对比。

当然,request也可以生成一个request对象,这个对象可以用urlopen方法打开。

代码如下:

from urllib import requestdef vists_baidu(): # create a request obkect req = request.Request('http://www.baidu.com') # open the request object response = request.urlopen(req) # read the response  html = response.read() html = html.decode('utf-8') print(html)if __name__ == '__main__': vists_baidu()

登录后复制

运行结果和刚才相同。

(3)错误处理

错误处理通过urllib模块来处理,主要有URLError和HTTPError错误,其中HTTPError错误是URLError错误的子类,即HTTRPError也可以通过URLError捕获。

HTTPError可以通过其code属性来捕获。

处理HTTPError的代码如下:

from urllib import requestfrom urllib import errordef Err(): url = "https://segmentfault.com/zzz" req = request.Request(url) try: response = request.urlopen(req) html = response.read().decode("utf-8") print(html) except error.HTTPError as e: print(e.code)if __name__ == '__main__': Err()

登录后复制

运行结果如图:

python最简单的网页爬虫教程

404为打印出的错误代码,关于此详细信息大家可以自行百度。

URLError可以通过其reason属性来捕获。

chuliHTTPError的代码如下:

from urllib import requestfrom urllib import errordef Err(): url = "https://segmentf.com/" req = request.Request(url) try: response = request.urlopen(req) html = response.read().decode("utf-8") print(html) except error.URLError as e: print(e.reason)if __name__ == '__main__': Err()

登录后复制

运行结果如图:

python最简单的网页爬虫教程

既然为了处理错误,那么最好两个错误都写入代码中,毕竟越细致越清晰。须注意的是,HTTPError是URLError的子类,所以一定要将HTTPError放在URLError的前面,否则都会输出URLError的,如将404输出为Not Found。

代码如下:

from urllib import requestfrom urllib import error# 第一种方法,URLErroe和HTTPErrordef Err(): url = "https://segmentfault.com/zzz" req = request.Request(url) try: response = request.urlopen(req) html = response.read().decode("utf-8") print(html) except error.HTTPError as e: print(e.code) except error.URLError as e: print(e.reason)

登录后复制

大家可以更改url来查看各种错误的输出形式。

总结

以上就是python最简单的网页爬虫教程的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2267139.html

(0)
上一篇 2025年2月27日 09:51:04
下一篇 2025年2月25日 12:29:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python基础入门级操作总结

    下面小编就为大家带来一篇python基础之入门必看操作。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 这里提供在使用python进行开发中常使用到的方法技巧,如有不对欢迎批评指正。 要点:开发中类、变量特性查…

    2025年2月27日
    200
  • 对python的链表数据结构讲解

    下面小编就为大家带来一篇python数据结构之链表的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 在程序中,经常需要将⼀组(通常是同为某个类型的)数据元素作为整体 管理和使⽤,需要创建这种元素组,⽤…

    2025年2月27日
    200
  • Python基础入门–区块链

    区块链的基础概念很简单:一个分布式数据库,存储一个不断加长的 list,list 中包含着许多有序的记录。下面这篇文章主要给大家介绍了关于python学习入门之区块链的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面来一起看看吧。…

    2025年2月27日
    200
  • Python中类的创建与使用详解

    这篇文章主要介绍了python实现类的创建与使用方法,结合简单计算器功能实例分析了python类的定义与使用方法,需要的朋友可以参考下 本文实例讲述了Python实现类的创建与使用方法。分享给大家供大家参考,具体如下: #coding=ut…

    2025年2月27日
    200
  • python制作邮件发送实例

    这篇文章主要为大家详细介绍了python实现发送邮件功能,使用的模块是smtplib、mimetext,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现发送邮件功能的具体代码,供大家参考,具体内容如下 …

    2025年2月27日
    200
  • 介绍python判断一个数是不是正小数和整数的方法

    这篇文章主要介绍了python 判断是否为正小数和正整数的实例的相关资料,这里提供实例,实例注释说明很清楚,需要的朋友可以参考下 python 判断是否为正小数和正整数的实例 实现代码: def check_float(string):  …

    编程技术 2025年2月27日
    200
  • Python对商城购物小程序的介绍

    本文给大家分享的是使用python实现的购物小程序的思路要求以及相关代码,非常的简单实用,有需要的小伙伴可以参考下 要求: 启动程序后,让用户输入工资,然后打印出带有序号的商品列表用户输入商品序号购买相应的商品,或者输入 ‘ q…

    编程技术 2025年2月27日
    200
  • 使用Python进行手机号和数字的随机生成方法

    这篇文章主要介绍了python随机生成手机号、数字的方法,结合完整实例形式分析了python编程生成随机手机号与数字的实现方法及相关函数用法,需要的朋友可以参考下 本文实例讲述了Python随机生成手机号、数字的方法。分享给大家供大家参考,…

    编程技术 2025年2月27日
    200
  • Python将文本生成二维码方法详解

    这篇文章主要介绍了python实现将文本生成二维码的方法,结合完整实例形式分析了python生成二维码操作的具体步骤与相关实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现将文本生成二维码的方法。分享给大家供大家参考,具体如下:…

    编程技术 2025年2月27日
    200
  • python对mysql数据库操作的实例详解

    这篇文章主要介绍了python3操作mysql数据库的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 软硬件环境 OS X EI CapitanPython 3.5.1mysql 5.6 前言 在开发中经常涉及到数据库的使用,而py…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论