我一直想学习另一种语言而不是java。所以我开始用python来解决问题。我已经过去'潜入python'所以我现在对python有了不错的了解。
你在哪里建议我离开这里?我不想再次阅读另一本高级书籍,并希望使用python知识来构建“某事”。我听说python很适合网络抓取,但是,我没有看到它潜入python。社区可以建议如何将我的pythong知识用于网络爬虫或蜘蛛吗?
答案 0 :(得分:12)
这真的取决于你喜欢或想要建立的东西。既然你没有说,我会推荐一些我很喜欢的东西。 Toby Segaran的Programming Collective Intelligence是一本有趣的书,这些例子都是用Python编写的。它可能会更有趣 - 如果不出意外,它会让您的网络抓取工具与它收集的网页有关。
编辑:Fusspawn对PyGame的建议非常好,如果不想要更多书籍而只是想“深入”某事。
答案 1 :(得分:7)
答案 2 :(得分:5)
如果您喜欢数学,请尝试使用python解决Project Euler problems来学习Python。每个问题都不是太多的代码,它帮助我提高了我的python技能。
答案 3 :(得分:4)
我总觉得制作小游戏是学习语言的好方法 PyGame简化了操作,可以帮助我们了解有关python的更多信息。如果你的那种方式倾向于我,我建议先给它。
答案 4 :(得分:4)
要开始使用网络抓取,请考虑使用Scrapy框架。
“Scrapy是一种高级抓取和网络抓取框架,用于编写蜘蛛抓取和解析网页,用于各种用途,从信息检索到监控或测试网站。”
它仍然朝着第一个版本发展,但它是可用的,并且有很好的文档。
对于非常基本的网页抓取,请查看Mechanize(用于基本网页“浏览”)和BeautifulSoup(用于解析“html汤”):
http://wwwsearch.sourceforge.net/mechanize/
http://www.crummy.com/software/BeautifulSoup/
要做的一件有趣的事情是将这些兴趣与一些自然语言处理项目结合起来。最近由O'Reilly出版的NLTK书籍也可在线获取:
将这些兴趣结合起来会带来很多乐趣。 : - )
答案 5 :(得分:4)
如果您想扩展网络抓取范围以及不想创建自己的项目(或者不知道该怎么做),请查看The Python Challenge。这是一个游戏,你必须用一些python代码解决难题。我真的很喜欢它。
答案 6 :(得分:3)
网络抓取您想要做的事情或者您认为可以完成的事情吗? Python是一个很好的网页抓取工具(请参阅here和here),但是如果你真的只是希望任何项目能够更熟悉语言/ API,我建议你选择一个无论如何你对一般兴趣的项目。这样,除了对语言的兴趣之外,你已经对项目感兴趣,因此更容易坚持下去。
答案 7 :(得分:3)
找一个有趣的开源项目参与。你可以开始关注pythonsource或sourceforge。
答案 8 :(得分:1)
Tools/webchecker/目录应该在你的Python发行版中(否则你可以通过我给出的链接获得它),这是一个开始 - 有很多限制(除wsgui.py
之外没有线程,没有异步操作,...),但删除其中一些将是一个很好的学习经验!
可以在Twisted之上构建一个非常优越的蜘蛛系统,例如从this mail底部的片段开始(只有一页,但是以正确的异步方式!)并添加您在webchecker中看到的其他功能(解析和尊重robots.txt,从页面获取链接)等等。)
答案 9 :(得分:0)
如果你想要“高级书”,我推荐亚历克斯的Python in a Nutshell, Second Edition,从书中学到很多东西,而Tarek的Expert Python Programming,我们都知道这是一本高级书籍。<登记/> 要阅读一些开源项目,请推荐SQLAlchemy和Django 也许尝试开始你自己的项目是最好的方式。
答案 10 :(得分:0)
其他人已经说过了,但我会再说一遍:做一些你感兴趣的事情,或者它不会很有趣。
如果您确定抓取工具很有趣,请查看用于Google桌面搜索的google-kongulo
网络蜘蛛插件。代码非常简短且编写良好,因此这可能为您决定要爬行的内容提供了良好的基础。
答案 11 :(得分:0)
如果您对抓取网站特别感兴趣,请查看PyCon 2009上发布的名为“Scrape the Web”的三部分内容。这是RSS feed的一部分。
答案 12 :(得分:0)
再次阅读 Dive Into Python ,它在第8章和第11章讨论了HTML processing和HTTP web services。