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 14 Python
用Python解决计数原理问题的方法
Aug 04 Python
Python 处理图片像素点的实例
Jan 08 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
用python实现刷点击率的示例代码
Feb 21 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
Mar 05 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
Django后台admin的使用详解
Jul 08 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
OpenCV-Python实现轮廓拟合
Jun 08 Python
Python编程源码报错解决方法总结经验分享
Oct 05 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
php+mysql写的简单留言本实例代码
2008/07/25 PHP
php print EOF实现方法
2009/05/21 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
vue实现循环切换动画
2018/10/17 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
详解python中的index函数用法
2019/08/06 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
UDP协议功能
2013/01/06 面试题
在校大学生个人的自我评价
2014/02/13 职场文书
作文批改评语大全
2014/04/23 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
阿甘正传观后感
2015/06/01 职场文书
感动中国何玥观后感
2015/06/02 职场文书
Python函数对象与闭包函数
2022/04/13 Python
python playwright之元素定位示例详解
2022/07/23 Python