全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python爬虫实战之最简单的网页爬虫教程

前言

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

1.开发工具

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

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

[sublime搭建python开发环境][https://www./article/51838.htm]

2.爬虫介绍

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

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

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

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

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

3.urllib开发最简单的爬虫

(1)urllib简介

Module Introduce
urllib.error Exception classes raised by urllib.request.
urllib.parse Parse URLs into or assemble them from components.
urllib.request Extensible library for opening URLs.
urllib.response Response classes used by urllib.
urllib.robotparser Load a robots.txt file and answer questions about fetchability of other URLs.

(2)开发最简单的爬虫

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

爬虫代码如下:

from urllib import request

def 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()

结果如下图:


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

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

代码如下:

from urllib import request

def 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 request
from urllib import error

def 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()

运行结果如图:

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

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

chuliHTTPError的代码如下:

from urllib import request
from urllib import error

def 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()

运行结果如图:


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

代码如下:

from urllib import request
from urllib import error

# 第一种方法,URLErroe和HTTPError
def 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网页爬虫  # python  # 爬虫网页内容  # python网页爬虫程序  # Python爬虫实战之12306抢票开源  # Python爬虫实战:分析《战狼2》豆瓣影评  # python爬虫实战之爬取京东商城实例教程  # Python中urllib+urllib2+cookielib模块编写爬虫实战  # Python开发实例分享bt种子爬虫程序和种子解析  # Python爬虫开发与项目实战  # 可以通过  # 子类  # 如图  # 这篇文章  # 最简单  # 首页  # 自己的  # 的是  # 是一种  # 放在  # 都不  # 短小精悍  # 在此  # 说了  # 定位器  # 可以用  # 不多  # 我们可以  # 这张  # 便可 


相关文章: 电商网站制作公司有哪些,1688网是什么意思?  建站之星如何通过成品分离优化网站效率?  如何在阿里云服务器自主搭建网站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  中山网站制作网页,中山新生登记系统登记流程?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  建站为何优先选择香港服务器?  网站制作话术技巧,网站推广做的好怎么话术?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站主机类型有哪些?如何正确选型  零服务器AI建站解决方案:快速部署与云端平台低成本实践  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  建站主机选哪家性价比最高?  如何高效完成独享虚拟主机建站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  网站制作服务平台,有什么网站可以发布本地服务信息?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  网站制作软件有哪些,制图软件有哪些?  活动邀请函制作网站有哪些,活动邀请函文案?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  成都网站制作报价公司,成都工业用气开户费用?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站主机SSH密钥生成步骤及常见问题解答?  ,网页ppt怎么弄成自己的ppt?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  制作网站公司那家好,网络公司是做什么的?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  已有域名和空间如何搭建网站?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  建站之星代理费用多少?最新价格详情介绍  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何配置FTP站点权限与安全设置?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  教程网站设计制作软件,怎么创建自己的一个网站?  如何在Windows虚拟主机上快速搭建网站?  如何通过西部建站助手安装IIS服务器?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  网站制作公司排行榜,四大门户网站排名?  如何快速查询网站的真实建站时间?  Android自定义控件实现温度旋转按钮效果  建站之星如何助力企业快速打造五合一网站?  网站制作壁纸教程视频,电脑壁纸网站?  Thinkphp 中 distinct 的用法解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。