前言

网络爬虫(又被称为网页蜘蛛,网络机器人,在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小时内与您取得联系。