python爬虫企业级技术点_Python 3 网络爬虫学习建议?

Python 3 网络爬虫学习建议?

提问时间:2016/7/5 14:24:35    楼主:未知网友   阅读量:6513

如题,题主python只是比较熟悉numpy和scipy、matplotlib这三个包,都是做科研的时候在用。最近心血来潮自己写了几个机器学习算法,然后想去网站上去爬一些东西玩玩,因为以后可能会想把它接到自己还没写完的自动交易程序里,但也只是个雏形,还有很长的路要走。

但在办公室琢磨了一下午,发现网络爬虫这里又是个大坑,现阶段了解的就是scrapy其实并不适合python3,于是我现在只是在学习requests和beautifulsoup这俩包了。想请教网络爬虫这一块的行家,有没有什么推荐看的教程或者教学、博客什么的,真的想在这块在仔细学习一下。

先谢过啦!

1楼(未知网友)

以上答案都不错,py3走起,碼3000行,你就入门级

2楼(站大爷用户)

简单粗暴:

网易云课堂,搜索Python爬虫实战。

有一周免费版,也有四周收费版。

既然你学的是机器学习,建议免费版之后上收费班,绝对物有所值。

随手截了几张课程的章节

顺便 @林茜茜

利息相关:第一批学员

3楼(站大爷用户)

谢邀。

对python使用不是很深入,只是某次同学要让帮忙搞定一个需求,才上手。 我写爬虫更多的是使用php,自己特意写了一个php框架,GitHub - numberwolf/RollerPHP_framework: RollerPHP, 一款轻型PHP框架,支持PDO 和 Memcache,可拓展性高。

题注可以看一下,其实爬虫不是什么高技术东西,web后端语言写出来也都大同小异,我身边拿java写的也一大票,关键在于你对于语言的理解,包括计算机网络,在http1中你对于header在抓取信息所取作用的理解。

对于爬虫:我给lz几点建议。

1.首先,你先了解一下python基础语法。

2、了解基础语法之后,你就可以试着用简单的py来写一个单线程爬虫,要那种不需要登陆验证的。在这期间,你也应该好好复习或者预习 and 学习一下简单的正则表达式,这是在抓取信息中必不可少的,我曾经做iOS应用期间,使用爬虫爬取自己学校的成绩单,导json。

3.再正则表达式之后,你就应该了解一下session和cookie,之后可以模拟登陆一下http://zhihu.com的首页,这一步完成之后,恭喜你,您已经入门了!

接下来的发展就看你自己了。

4楼(未知网友)

谢邀

有几个基本的库要掌握:

1、提取网页信息,发送表单,模拟登陆等用requests。

2、解析网页内容,提取自己想要的东西用BeautifulSoup,这个库真的很好用,多看一下官方文档。

3、提取到的东西写入文档或者表格后续处理用python的doc模块和csv模块,如果要存到数据库中用mysql。

4、ajax等动态页面的提取用selenium。

5、多线程爬虫用threading模块或者multiprocessing pool库下的map函数。

关于爬虫的学习,我觉得最好是有需求驱动,即你想做一个什么项目或者自己想搜集一些东西,然后边做边学,碰到不懂得直接用google搜索。比如我最开始学爬虫就想自己把豆瓣上的小说按评分排名爬取下来,找好看的小说看。这样的一个好的驱动会使你不断学习,在这其中不断提高自己。

5楼(未知网友)

爬虫不是很难。

掌握以下知识

1、了解基本html知识

2、抓包

3、标准库urllib2 或python3 的urllib

4、第三方库requests,lxml,selenium,phantomjs等使用

5、用上面的库取到html 的pagesource,有2种方式可以获取需要的信息。正则或xpath。

6、抓取ajax 等javascript生成的网页。

7、抓取手机app的数据。

8、注意编码处理(python 2)

...............

推荐看看“python爬虫联想词视频”,自己搜播放地址。

6楼(未知网友)

requests,re,threading,Queue,os有这几个包基本上就够用了。当初学习爬虫的时候一点都不懂,甚至连爬虫是什么都不知道就在学了,但是怀着不懂装懂的精神,到现在基本上也算对爬虫了解一二。

正如你所说,爬虫是个大坑!因为这不仅仅是Python的事,想要学好爬虫,需要学习:网络基础知识(post/get/抓包)、(推荐)正则表达式(re模块)、多线程/多进程、数据库(储存)。

还有各种各样的问题:Python蛋疼的编码问题、遇到Ajax就要用selenium(效率低)、遇到验证码肿么办(我放弃)、需要模拟登录(我直接用cookies,在这里推荐requests,用法是:requests.get(url,cookies=cookies))、被网站禁ip等等

所以,如果你是想学爬虫,那么就慢慢磨吧。但是你是想学习机器学习,网上那么多的数据集,可以不必专门学

7楼(未知网友)

谢谢邀请!

写python爬虫2年多了,主要用的scrapy。关于python3,还没有开始学;在这方面,我算是传统的。一直在思考什么时候转python3。我主要关注的是我常用的python库是否支持,一旦支持,就立刻转python3.从最早的django、MySQLdb、PIL(Pillow)不支持,但现在这三者都支持了。所以在做web项目的时候是可以直接用python3了。所以现在的计划是今年下半年转python3。

说回爬虫。scrapy确实使用者众,可惜还不支持python3。所以现在的爬虫项目还是用python2.7。现在用着非常顺手。我的思路是,用django开发业务逻辑,根据业务逻辑建立的model,用scrapy抓取。是的,我的项目将django和scrapy代码放在一个repo了。也可以分开。另外,scrapy的调度使用的是celery,所有爬虫的调度时间和频率都是用celery控制的。django、scrapy、celery是我做开发的三大法器。

如果你不想使用scrapy等框架,像上面的回答一样,用一些请求库和解析库也能搭建出来。但我倾向于用django、celery、scrapy搭建通用的抓取系统。简单说,用django建立模型,scrapy做一些常用爬虫,规则定义模块;celery制定调度策略,可以非常快地建立一套系统。

规则定义模块 不是说的scrapy的Rule,而是我自定义的一套规则。它描述了抓取的起始URL如何获取,如何发现需要的url及处理动作,需要抓取哪个Item, Item中每个Field的规则定义(xpath、css、json, processors,default value,是否需要更新等)。这里说不完整,确实比较发杂。对于熟悉这套规则的人来说,比较简单,抓取过程变成了定义item及规则,写好调度策略即可。

这样做的另一个好处是,有利于经验积累。因为在抓取过程中遇到过各种各样的坑,都在这套系统上解决,这样一套好用、稳定的爬虫系统就建立了。

想过把这些代码产品化,但确实太复杂了,还在不断完善中。但好处已经出现。新开始一个项目非常快,非常简单。

写得有点乱。欢迎随时交流!

8楼(未知网友)

在我博客连载的我写的爬虫系列教程,欢迎与我联系探讨~~~~

希望能帮到你

爬虫教程(1)基础入门

爬虫教程(2)性能进阶

知乎用户信息爬虫(规模化爬取)

用scrapy爬取豆瓣电影新片榜

用scrapy对豆瓣top250页面爬取(多页面爬取)

用scrapy自动爬取下载图片

用scrapy自动下载石原sama的豆瓣影人图集(727张图片,自动下载)

9楼(未知网友)

用py3写爬虫的话,强力推荐这本书,应该是目前最系统最完善介绍python爬虫的书。可以去图灵社区买电子版。书的内容很新也很系统,从beautifulSoup,requests到ajax,图像识别,单元测试。比起绝大多数blog零散的教程要好的多,看完书后就可以去做些实战项目,这个时候可以去github上找类似的项目借鉴下。

英文版pdf:http://pan.baidu.com/s/1pJxJi2Z (个人觉得英文版更好,彩色的pdf)

中文版pdf: 图灵社区 : 图书 : Python网络数据采集 (支持正版)

-------------

更新:有评论说这本书内容比较浅,我表示赞同。但是对于新手来说,看完这本书,对于爬虫基础的应用与概念绝对有了初步的了解。其实国内有一本讲爬虫的好书,《自己动手写网络爬虫》,这本书除了介绍爬虫基本原理,包括优先级,宽度优先搜索,分布式爬虫,多线程,还有云计算,数据挖掘内容。只不过用了java来实现,但是思路是相同的。

你可能感兴趣的:(python爬虫企业级技术点)