零基础如何学爬虫技术?
零基础。。。负基础都是有可能的,区别就是需要付出的时间与精力成本的多少罢了。。。首先你得先学一门编程语言,理解编程的思维,然后再打爬虫知识的基础,打个比方,想使用方程组或者微积分解决问题,你总得先学加减乘除;只是为了爬虫的话,那python的确是目前较好的选择;对于python我没什么发言权,但是抛开获取源数据补充一点就是:爬虫的目的是数据,看题主的意思是要继续往大数据分析方向走的,那么数据存储也是重中之重,数据库数据储存这块其实水也是很深的,数据量大的话还是推荐使用mongo存储与普通批量查询和处理,同步solr方便进行分词查询;当然这就已经是你拿到数据的后话了;★☆★:这一点应该是最重要的,爬虫是节省人工的时间去获取数据,遵循的也是所见即所得,不管怎么说,在别人的网站上获取有价值的数据总得怀着感激的心情,爬虫代码友善一点,采集频率不是必要的情况下尽量放缓,不要给目标网站造成过大的压力,这是底线
1、所有大牛都是从0起步的。所以0基础不是问题,进度有可能是问题。你已经在工作,不知道工作能否允许或等到你学成2、进度、成本、质量会构成一个不可能三角。即不可能同时把三方面都做到最好,必须有所取舍。成人学习,先明确目的,再列计划,再执行。你的目的是解决生活中一个特定问题还是要成为爬虫(代码)高手。这点区别非常大。3、动起来,不管用哪个资料认真的照着做。4、学会自己找资料。说句可能得罪人的话,本问题其实不应该存在。
给你讲讲我的学习经历。先说我个人素质吧,有点儿语言基础,大学学的那点儿C语言,以及Excel录制宏里面改改VBA代码。我也是初学者,以下回答仅作参考。我从一开始就听别人说过Python做爬虫很方便,主要这语言简单,同时爬虫框架完善,所以想都没想就去学Python爬虫了。然后就去网易云课堂里找学习材料(没打广告,反正我也没人看),有一个得分4.9还是多少的爬新浪新闻页的那个,跟着里面学,里面的人写什么我就写什么,不懂的就查资料,什么是html啦,什么是网站协议之类的。然后跟着他把代码敲完了,真的就爬到一个页面了。此时,我用了半天时间。然后我就到知乎上查找有关Python爬虫的回答,看牛人们都是怎么一步一步做下去的,其中看到一本书叫《Python网络数据采集》,然后就去下了pdf版,花了半天时间看了个大概前3章还有错误处理那章。然后就想找个网站实际操作一下。我选择的是比较感兴趣的p2p行业人人贷的借款人界面。然后就是对照着书和视频依葫芦画瓢,同时参照着里面某些包比如bs4的帮助文档,真的就能爬一个完整的界面了。但是问题来了,又不只是爬一个界面啊,视频和书里没讲怎么爬多个界面。这时候就需要学点专业的Python知识了。我就去找了廖雪峰的教程,看了我需要的那几块,分别是循环,函数,列表什么的。看完之后就知道怎么爬多个页面了。设计爬取多个页面。整个过程花了1到2天时间。然后就涉及到效率问题了,1秒1页简直太慢了,所以我就想到了多线程和多进程,去廖雪峰教程里学习多线程和多进程,当然这远远不够,还参照网上别的资料和帮助文档,搞出了多线程,但速率好像并没有提升,又去搞多进程,提升显著,1秒100页都不是问题。这段过程花了2到3天。速度是快上去了,不过不到1分钟就被封IP了,我就又在知乎上查找如何就对爬虫封IP方法。构建IP池。我目前在这一步。所以,我只比零基础快了一周。
其实爬虫并不是什么特别困难的技术。读取数据的部分基本就是一个httpclient。然后加个正则,分析一下哪些是超链接。关键是你怎么处理爬出来的数据。以及有效的获取数据,比如有选择的打开新的链接。我们之前做企业门户的,就处理过这样的需求。他们需要抓取一些政府网站中的新闻。还好,那些网站中有一些元数据,可以供我们分析哪些是新闻,哪些是别的东西。与其谈爬虫不如分析一下目标怎么命中来的有用。
是:1.学习Python基本语法,并熟练使用2.学习Python中关于爬虫的几个重要的内置库:urllib/http/Cookie等3.学习正则表达式,beautifulsoup等解析网页的工具或包4.利用上几步学习的至少爬取比较简单的网站,比如一些应用市场等等,不需要登陆5.学习利用工具分析网页请求流程、学习模拟登陆,拿新浪微博、知乎等需要登陆的网站进行练习6.学习Python中关于多线程、多进程的东西,将以前写的代码改为多线程版本,提高效率7.学习Python中的爬虫框架,或者自己写一个爬虫框架。更高级的,还有验证码识别、js动态请求、js执行、代理IP等等。
首先要自己会写代码。学习爬虫可以从下面一些知识点入手学习。1、http相关知识。2、浏览器拦截、抓包。3、python2中编码知识,python3中bytes和str类型转换。4、抓取javascript动态生成的内容。4、模拟post、get,header等5、cookie处理,登录。6、代理访问。7、多线程访问、python3asyncio异步。8、正则表达式、xpath等等等。。。。还有scrapyrequests等第三方库的使用。
回答请先登录