如何快速入门Python爬虫?

x
用微信扫描二维码
分享至好友和朋友圈

  首先!你要对爬虫有个明确的认识,这里引用毛主席的思想:

  

  

在战略上藐视:

  “所有网站皆可爬”:互联网的内容都是人写出来的,而且都是偷懒写出来的(不会第一页是a,下一页是8),所以肯定有规律,这就给人有了爬取的可能,可以说,天下没有不能爬的网站

  “框架不变”:网站不同,但是原理都类似,大部分爬虫都是从 发送请求——获得页面——解析页面——下载内容——储存内容这样的流程来进行,只是用的工具不同

  在战术上重视:

  持之以恒,戒骄戒躁:对于初学入门,不可轻易自满,以为爬了一点内容就什么都会爬了,爬虫虽然是比较简单的技术,但是往深学也是没有止境的(比如搜索引擎等)!只有不断尝试,刻苦钻研才是王道!(为何有种小学作文即视感)

  ||
||
V

  然后,你需要一个宏伟的目标,来让你有持续学习的动力(没有实操项目,真的很难有动力)

  

我要爬整个豆瓣!...
我要爬整个草榴社区!
我要爬知乎各种妹子的联系方式*&^#%^$#

  

  ||
||
V

  接着,你需要扪心自问一下,自己的python基本功吼不吼啊?

  

吼啊!——OK,开始欢快地学习爬虫吧 !
不吼?你还需要学习一个!赶紧回去看廖雪峰老师的教程,
2.7的。至少这些功能和语法你要有基本的掌握 :

  list,dict:用来序列化你爬的东西

  切片:用来对爬取的内容进行分割,生成

  条件判断(if等):用来解决爬虫过程中哪些要哪些不要的问题

  循环和迭代(for while ):用来循环,重复爬虫动作

  文件读写操作(open,close等):用来读取参数、保存爬下来的内容等

  编码常识(codecs等):非常关键,爬虫写熟了以后遇到的各种古怪问题,很多来自于UTF-8 GBK等奇奇怪怪的编码!这个问题先做了解,后面调试时候再解决也不迟!

  ||
||
V

  然后,你需要补充一下下面几个内容,作为你的知识储备:
(注:这里并非要求“掌握”,下面讲的两点,只需要先了解,然后通过具体项目来不断实践,直到熟练掌握)

  1、网页的基本知识:

  

基本的HTML语言知识(知道href等大学计算机一级内容即可)
理解网站的发包和收包的概念(POST GET)
稍微一点点的js知识,用于理解动态网页(当然如果本身就懂当然更好啦)

  2、一些分析语言,为接下来解析网页内容做准备

  

NO.1 正则表达式:扛把子技术,总得会最基础的:

  

  NO.2 XPATH:高效的分析语言,表达清晰简单,掌握了以后基本可以不用正则
参考:XPath 教程

  

  NO.3 Beautifulsoup:
美丽汤模块解析网页神器,一款神器,如果不用一些爬虫框架(如后文讲到的scrapy),配合request,urllib等模块(后面会详细讲),可以编写各种小巧精干的爬虫脚本
官网文档:Beautiful Soup 4.2.0 文档参考案例:

  

  编辑

  请点击输入图片描述

  

  ||

  ||

  V

  接着,你需要一些高效的工具来辅助

  (同样,这里先了解,到具体的项目的时候,再熟悉运用)

  

NO.1 F12 开发者工具:

  看源代码:快速定位元素

  分析xpath:1、此处建议谷歌系浏览器,可以在源码界面直接右键看

  

  NO.2 抓包工具:

  推荐httpfox,火狐浏览器下的插件,比谷歌火狐系自带的F12工具都要好,可以方便查看网站收包发包的信息

  

  NO.3 XPATH CHECKER (火狐插件):
非常不错的xpath测试工具,但是有几个坑,都是个人踩过的,,在此告诫大家:
1、xpath checker生成的是绝对路径,遇到一些动态生成的图标(常见的有列表翻页按钮等),飘忽不定的绝对路径很有可能造成错误,所以这里建议在真正分析的时候,只是作为参考
2、记得把如下图xpath框里的“x:”去掉,貌似这个是早期版本xpath的语法,目前已经和一些模块不兼容(比如scrapy),还是删去避免报错

  

  NO.4 正则表达测试工具:在线正则表达式测试,拿来多练练手,也辅助分析!里面有很多现成的正则表达式可以用,也可以进行参考!

  ||

  ||

  V

  ok!这些你都基本有一些了解了,现在开始进入抓取时间,上各种模块吧!python的火,很大原因就是各种好用的模块,这些模块是居家旅行爬网站常备的——

  

urllib
urllib2
requests

  ||

  ||

  V

  不想重复造轮子,有没有现成的框架?

  

华丽丽的scrapy(这块我会重点讲,我的最爱)

  ||

  ||

  V

  遇到动态页面怎么办?

  

selenium(会了这个配合scrapy无往不利,是居家旅行爬网站又一神器,下一版更新的时候会着重安利,因为这块貌似目前网上的教程还很少)
phantomJS(不显示网页的selenium)

  ||

  ||

  V

  遇到反爬虫策略验证码之类咋整?(不想折腾的直接第四个)

  

PIL
opencv
pybrain
打码平台

  ||
||
V

  然后是数据库,这里我认为开始并不需要非常深入,在需要的时候再学习即可

  

mysql
mongodb
sqllite

  ||

  ||

  V

  爬来的东西怎么用?

  

numpy 数据分析,类似matlab的模块
pandas(基于numpy的数据分析模块,相信我,如果你不是专门搞TB级数据的,这个就够了)

  ||

  ||

  V

  进阶技术

  

多线程、分布式

  

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

跟贴 跟贴 8 参与 115
© 1997-2020 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 网站地图 | 意见反馈 | 不良信息举报

python那点事

专注基础扫盲,进阶。

头像

python那点事

专注基础扫盲,进阶。

48

篇文章

968

人关注

列表加载中...
请登录后再关注
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码