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 base64 decode incorrect padding错误解决方法
Jan 08 Python
Python运算符重载用法实例分析
Jun 01 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 Python
python修改txt文件中的某一项方法
Dec 29 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
python中的 zip函数详解及用法举例
Feb 16 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
详解python爬取弹幕与数据分析
Nov 14 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 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
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
DEFER怎么用?
2006/07/01 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python定时任务sched模块用法示例
2018/07/16 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
古汉语文学求职信范文
2014/03/16 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
教师节标语大全
2014/10/07 职场文书
地方课程教学计划
2015/01/19 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
自荐信范文
2019/05/20 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
详解Python函数print用法
2021/06/18 Python
nginx七层负载均衡配置详解
2022/07/15 Servers