最近开始学习Python语言,学完了《与孩子一起学编程》,看完了官方的tutorial。现在正在看中文版的《Learn Python》,感觉这本书讲的实在是太多了,更像一本参考书,学习的兴趣也降低了,我很想去弄一些网页抓取,抓取数据之类的,可是又觉得基础不够,各位有经验的前辈们请求指教(本人非计算机专业,但是对这方面还是挺感兴趣的,每天大概能抽出2小时左右的时间去学习Python)
回复内容:
兴趣会在一直看书而不实干的时间内被消耗.
想学爬虫又担心基础不够的话, 可以先试着用Scrapy.
按照每天2个小时的进度, 先花1天的时间把文档过一遍.
Scrapy 0.24 文档
鉴于题主是非计算机专业, 也许你还需要了解以下内容:
- HTML标签的基础知识,能看懂标签的意义就好
- http基础知识, get, post,json这些乱七八糟的名词是什么鬼
以上都可以在w3school 在线教程
这个网站得到基本的了解.
假设以上基础题主已经有了, 可以找豆瓣或者其它一些小站,参照文档开始写个小爬虫
遇到一些需要验证或者Cookie的就先放弃吧, 入门先专注于让爬虫能跑起来, 这也是维持学习兴趣的方法
当你达到可以随心所欲写个爬虫爬数据的地步,可以考虑优化了, 什么防爬, 用户验证, Cookie, 模拟登录, 多线程提高爬取效率之类的...
我一开始就是先对豆瓣下的手, 在第2天的时候写了个小爬虫爬了100多万的书的数据存到数据库里,有了数据却不知道拿来干什么, 感觉没什么意思. (值得一提的是, 豆瓣有个防爬验证, 爬取速度过快会要求你输验证码以判定你不是机器人. 记得把延迟设置一下, 不然你的爬虫会很讨人厌的)
于是打算去爬知乎,听说知乎防爬比较厉害(之前试过被知乎封IP段),于是打算去搞个代理池通过高匿名代理来爬知乎, 在网上找了个代理买了半年的服务, 结果发现提的代理都连不上, 感觉太麻烦了, 干脆自己去爬代理, 期间觉得scrapy对爬代理这种小东西有点杀鸡用牛刀的感觉, 于是自己用pycurl + beatifulsoup写了个简易爬虫来爬, 现在有一些短时间内比较稳定免费代理可以用了, 感觉可以开始爬知乎了. 目前只实现了爬取某人的动态并发邮件到自己的邮箱, 嘛, 就像这位仁兄做的那样
能利用爬虫技术做到哪些很酷很有趣很有用的事情? - 伍新生的回答
以上的经历从开始看文档到现在, 大概花了10天的时间, 期间有大部分时间在查资料.还有考虑先自己写还是用框架等这些无谓的消耗里, 所以别想这么多, 决定一个方向直接走起, 你会发现你觉得好像很难的东西, 在几天后觉得其实没那么困难~
我寒假学python,只学了10天就开始学着写爬虫。。。一边做一边看书看别人的博客,找源码分析。
在写的过程中就能发现自己缺少什么,需要学习什么,要学到什么程度,以及最为重要的学这个是为了什么,能够做哪些事情。
写过一些简单的爬虫和小脚本之后,开始系统的看书,因为这时候就知道该怎么系统的学习了。
有目标的学习比漫无目的的学习进步要快得多。
了解基本语法之后,开始尝试写东西,写个小游戏之类的,虽然会觉得很难,但比单纯的学要高效的多
鱼C论坛零基础入门学习python视频,里面有教你如何制作一个爬虫爬妹子图片,很有趣。论坛里面也有很多网友编写的小项目可以参考一下。网址
http://bbs.fishc.com 推荐一本书《python基础教程》,书的最后有好几个小项目,实现起来还是非常有趣的。
总之,学习编程语言是为了解决生活中的实际问题,不要为了学而学,莫忘初衷,才能有源源不断的学习动力。基本语法掌握后,调你感兴趣的一块深入研究,比如我就对pygame感兴趣,自己写了个打飞机的游戏。
1、稍微能看英文书籍
2、在浏览器中键入Electronic library. Download books free. Finding boooks
3、输入“with python”并且按回车
4、找到感兴趣的书籍并且单击下载
5、啪啪啪
既然你对抓取网页感兴趣,也学完了一本书和官方的教程,我觉得完全可以学习网页抓取了。不用把它想得那么复杂,我想你有看那本《learn python》的勇气,肯定不是有什么人或者事逼着你要抓取网页,既然是玩,又何必顾虑重重呢?倒是那本书这么厚,等你看完黄花菜都凉了,如果不是为了学习语言本身的话,建议先不要啃它了。而且,网页抓取不只是学好这门python就可以的事,你可能还需要了解一些其他的知识。
本人也是python爱好者,学它纯粹是出于兴趣,偶尔也能在学习中用到它。我学python才几个月,也简单的试过网页抓取,感觉想入门没那么难,只要你英文够好或者勤查字典,对着抓取网页的库的官方文档慢慢学就可以了。推荐你先了解一下这几个相关的库:requests, BeautifulSoup, lxml。然后可以看看scrapy,再之后我就不知道了。
一起进步!
去搞点破坏吧。
已经读完了这么多东西,你就不想去写点什么?
从什么开始呢?
1 爬虫。这个你在知乎上搜一下爬虫就会得到很多有意思的故事,说不定还能得到别人的代码
2 机器人。这里特指chat bot和社交网站bot。比如基于wechat框架和人人api写一个表白墙,比如基于xmpp写一个把icq变成浏览器(顺带翻墙?)的机器人等等等等。在不支持群聊的服务上实现个聊天室之类的,开查询天气公众号,利用聊天室开个dnd(龙与地下城)的服,这些代码架构都不会太大
3 做个网站。被重复发明最多的轮子就是blog。不吐槽。不过做这个可能需要一点js基础。嗯,“一点”和“基础”也许该去掉,也许不用。
4 fork。在哪个网站看到了哪个不错的小游戏?fork一个出来试试!美工不够的情况下你也可以得到一个很有意思的基础版本的游戏。比如说,做个2048出来呗。
5 kit。小工具也是很不错的选择,同样是2048,写个启发式搜索的2048帮助程序让你判断当前状态哪个方向更有利不是也不错。
嗯?你说这些你都不知道怎么下手?都没学过?
但是,你已经掌握了Python的大半,剩下来的已经不是Python的问题。
你需要学的,是收集信息,比如一个爬虫tutor,在有google的世界里,这是很简单的事,但是在没有Google的世界里,可能需要一点更传统的方法或一个访问Google的方法,哪一个更简单,很难说。
你需要学的,是分析需求,分解它们,再析理它们,使他们只按内在逻辑排列。
你需要学的,是组织代码,这个可能Python能帮到你,看一看pep8会有帮助。
从今以后,书便不再是你的老师,而是你的工具,你会从各种地方学到这些东西,也可能找遍各处都学不到,它们可能在别人的代码里,别人的需求文档里,甚至是你的梦里。
调研,设计,编码,重构,编程就在其中了,也许世界都在其中了。
要继续写下去,功夫已经在诗外了。
Python入门的话,首推《A Byte of Python》,花很短的时间就能看完,并且看完后就可以写一些小东西了。后面在实践的时候可以多上网找些实例参考,多看看Python Manuals,熟悉了就好。
正如二楼所说的,兴趣会在一直看书而不实干的时间内被消耗,想学好一门技术,是需要不断的磨练,而不是只是看看而已,只有从实干中才能找到经验,如果实在不知道如何去进行项目实战,可以看看麦子学院上面的分页器Paginator的使用
这个项目实战,可以慢慢的模仿,然后变成自己的知识。
先看head first python入门,然后照着写个简单的web,接下来就根据自己的研究方向可以深入了。有好的代码记得共享,看着下载量增加会很有成就感:)