如何快速入门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 | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 侵权投诉 Reporting Infringements | 不良信息举报

python那点事

专注基础扫盲,进阶。

头像

python那点事

专注基础扫盲,进阶。

48

篇文章

981

人关注

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

用户登录

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