Python3爬虫学习入门教程


Posted in Python onDecember 11, 2018

本文实例讲述了Python3爬虫相关入门知识。分享给大家供大家参考,具体如下:

在网上看到大多数爬虫教程都是Python2的,但Python3才是未来的趋势,许多初学者看了Python2的教程学Python3的话很难适应过来,毕竟Python2.x和Python3.x还是有很多区别的,一个系统的学习方法和路线非常重要,因此我在联系了一段时间之后,想写一下自己的学习过程,分享一下自己的学习经验,顺便也锻炼一下自己。

一、入门篇

这里是Python3的官方技术文档,在这里需要着重说一下,语言的技术文档是用来查的,不是用来学习的,真的没必要把文档背下来,这样学习效率真的很低,不如片学边做,在实践中才会学到东西,不然即使你背会了文档,你仍然很难做出什么项目来,我当初就是在这上面,走了很多弯路,在这里推荐W3cscjool里面的教程非常不错,学习与实践相结合。

1. 少废话,先看东西

第一个例子:爬取知乎首页源码。

#-*-coding:utf-8 -*-
import urllib.request
url = "http://www.zhihu.com"
page_info = urllib.request.urlopen(url).read()
page_info = page_info.decode('utf-8')
print(page_info)

运行结果:

Python3爬虫学习入门教程

运行之后,在IDLE shell里面知乎网站首页的源代码就会被读出来啦Blahblahblah~~~

爬虫定义:

网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。

简介:

网络蜘蛛是一个很形象的名字。如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从 网站某一个页面开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。

爬虫流程:

①先由urllib的request打开Url得到网页html文档——②浏览器打开网页源代码分析元素节点——③通过Beautiful Soup(后面会讲到)或则正则表达式提取想要的数据——④存储数据到本地磁盘或数据库(抓取,分析,存储)

urllib和urllib2

python2.x里urllib2库,在python3.x里,urllib2改名为urllib,被分成一些子模块:urllib.request, urllib.parseurllib.error。尽管函数名称大多数和原来一样,但是在用新的urllib库时需要注意哪些函数被移动到子模块里了。
urllib是python的标准库,包含了从网络请求数据,处理cookie,甚至改变像请求头和用户代理这些元数据的函数。
urlopen用来打开并读取一个从网络获取的远程对象。它可以轻松读取HTML文件、图像文件或其他任何文件流。

url = "http://www.zhihu.com"
page_info = urllib.request.urlopen(url).read()

urllib.request是urllib的一个子模块,可以打开和处理一些复杂的网址

decode('utf-8')用来将页面转换成utf-8的编码格式,否则会出现乱码

page_info = page_info.decode('utf-8')
print(page_info)

urllib.request.urlopen()方法实现了打开url,并返回一个 http.client.HTTPResponse对象,通过http.client.HTTPResponse的read()方法,获得response body,转码最后通过print()打印出来.

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python读写文件方法总结
Jun 09 Python
Python每天必学之bytes字节
Jan 28 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
Python找出list中最常出现元素的方法
Jun 14 Python
python分割列表(list)的方法示例
May 07 Python
Python3安装Pymongo详细步骤
May 26 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
Python循环结构的应用场景详解
Jul 11 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
Python queue队列原理与应用案例分析
Sep 27 Python
Django实现网页分页功能
Oct 31 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 #Python
python绘制散点图并标记序号的方法
Dec 11 #Python
pandas分别写入excel的不同sheet方法
Dec 11 #Python
使用Python横向合并excel文件的实例
Dec 11 #Python
padas 生成excel 增加sheet表的实例
Dec 11 #Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 #Python
Python 多线程不加锁分块读取文件的方法
Dec 11 #Python
You might like
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
Jquery 扩展方法
2010/05/06 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
JavaScript手机振动API
2016/06/11 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
js实现简单掷骰子效果
2019/10/24 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
python logging添加filter教程
2019/12/24 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
好的自荐信包括什么内容
2013/11/07 职场文书
模具数控专业自荐信
2014/01/27 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
instantclient客户端 连接oracle数据库
2022/04/26 Oracle