记得刚开始学习python时就觉得爬虫特别神奇,特别叼,但是网上的中文资料大都局限于爬取静态的页面,涉及到JavaScript的以及验证码的就很少了,【当时还并不习惯直接找外文资料】就这样止步于设计其相关的爬虫了,前两周图灵社区书籍推荐邮件来了本《python网络数据采集》,英文名《web scraping with python》,觉得有意思就下了本英文版的PDF看完了,发现其不仅讲的很系统而且也完美的解决了当时我存在的问题,而我就在想,如果当时就能够读取到这本书那是不是就很屌呢,是不是就能够少走很多弯路呢?我第一次认为是这样的,还略有点抱怨搜了那么多python爬虫的资料居然没有人推荐这么好的东东,真是不好,而后我又想其实总的来说,这本书的牛逼之处在于把方方面面需要用到的知识都告诉你了,作者用多年的经验举重若轻地全面的透露了所需,所以你就觉得满足了,但是面对新技术的出现,并不能够只依靠别的大神来告诉你方方面所需要的东西,如何能够自己成为那种起头的研究透的人才是最重要的,想到此又怪自己当初为何就没能自己去搞定这些呢,而不应该是埋怨别人没有告诉你?最后昨晚在看一本书时看到的一些东西觉得很有道理:新手往往面对二阶不胜任的情况(second-order incompetence):不知道自己不知道多少,所以首先需要发挥R&D精神:Rip off and Duplicate 【偷师学艺】,而后需记住,无论是对你自己或对他人,一种规格并非处处适用,正如你从模型中看到的,你的需求取决于你所处的技能水平,随着时间推移,你的个人学习和成长所需要的东西会改变。这么看来也就释然了。

我将《scraping with python》中每一章节最有用的东西的提取了出来并做了一些补充,github地址

各章内容提要:

第一章:最简单的用urllib.request中的urlopen配合BeautifulSoup提取某页面的HTML

第二章:如何用BeautifulSoup定位到想要的内容,如何配合正着表达式使用,如何获取标签中的属性

第三章:实际演示了通过一个页面中的link连续爬取,涉及到了防止爬取重复等问题

第四章:使用网站既有的API来获取数据

第五章:保存数据的问题,保存URL还是下载下来?保存到Mysql,Email等等

第六章:如果不是要爬取HTML而是读取服务器的如TXT,PDF文件应该如何弄

第七章:数据清理(如替换连续空格,替换连续空行,去掉非英文内容),以及第三方工具介绍

第八章:关于自然语言处理中的n-gram ananysis

第九章:提交表单,使用COOKIE,使用SEESION

第十章:使用selenium以及PhantomJS搞定Javascript

第十一章:验证码的识别

第十二章:防止被服务器认定为机器人的措施小结

《scraping with python》的更多相关文章

  1. 《Writing Idiomatic Python》前两部分的中文翻译

    汇总了一下这本小书前两部分的内容: 翻译<Writing Idiomatic Python>(一):if语句.for循环 翻译<Writing Idiomatic Python> ...

  2. 翻译《Writing Idiomatic Python》(五):类、上下文管理器、生成器

    原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...

  3. 翻译《Writing Idiomatic Python》(四):字典、集合、元组

    原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...

  4. 翻译《Writing Idiomatic Python》(三):变量、字符串、列表

    原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...

  5. 翻译《Writing Idiomatic Python》(一):if语句、for循环

    开篇废话 这是在美国Amazon上评价很不错的一本书,其实严格来说这可能不算书,而是一本小册子.就像书名一样,里面的内容主要是用一些例子讲述地道的Python的代码是怎样写的.书中把很多例子用不良风格 ...

  6. 翻译《Writing Idiomatic Python》(二):函数、异常

    原书参考:http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/ 上一篇:翻译<Writing Idiomatic ...

  7. 关于《Head First Python》一书中print_lol()函数的思考

    关于<Head First Python>一书中print_lol()函数的思考 在<Head First Python>第一章中,讲述到Python处理复杂数据(以电影数据列 ...

  8. 为什么《Dive into Python》不值得推荐

    2010 年 5 月 5 日更新:我翻译了一篇<<Dive Into Python>非死不可>作为对本文观点的进一步支持和对评论的回复,请见:http://blog.csdn. ...

  9. 《流畅的Python》一副扑克牌中的难点

    1.现在在看<流畅的Python>这本书,看了三页就发现,这本书果然不是让新手来入门的,一些很常见的知识点能被这个作者玩出花来, 唉,我就在想,下面要分析的这些的代码,就算我费劲巴拉的看懂 ...

随机推荐

  1. 为什么要用专业的ETL

    这两天一直在思考一个问题,为什么要用专业的etl工具进行数据清洗,原因如下: ETL负责将分布的.异构数据源中的数据如关系数据.平面数据文件等抽取到临时中间层后进行清洗.转换.集成,最后加载到数据仓库 ...

  2. Linux——搭建PHP开发环境第四步:composer

    原文链接:https://my.oschina.net/jiangbianwanghai/blog/473249 1.下载composer.phar [root#localhost opt]# cur ...

  3. 玩玩TCPCOPY+ intercept+mysql-replay-module(未成功)

    TCPCOPY+ intercept这两个模拟流量转发倒简单. 但,想实现一个mysql-replay-module模块时,失败了.(我现在仔细想想,这个方案,在我们现在的场景里,实用性不大,但弄好点 ...

  4. IOS中UIButton和UIImageView的区别

    1.使用场合 UIImageView:如果仅仅是为了显示图片,不需要监听图片的点击事件 UIButton:既要显示图片,又要监听图片等点击事件 2.相同点 都能显示图片 3.不同点 UIButton能 ...

  5. 模拟键盘发送文字(使用SendInput函数)

    嗯...老生常谈的话题, 不过系统的总结了一下, 找了个相对简单的实现方式, 可以方便的发送任何文字 参考另一片文章: http://www.cnblogs.com/-clq/archive/2011 ...

  6. org.springframework.beans.BeanUtils

    org.springframework.beans.BeanUtils的一个demo.可以很优雅的实现将父类字段的值copy到子类中 下面例子的输出结果(子类使用父类的toString方法,有点意思吧 ...

  7. TransactionScope IsolationLevel 事务隔离级别

    事务有四个特性 第一原子性,事务具有独立的不能被拆分的,不能只做部分,事务的性质是要么全做,要么都不做. 第二统一性,在事务执行之前和事务执行之后的数据是一致. 第三隔离性,事务是独立的,开发者不能查 ...

  8. C# Hashtable中存入数组、List

    哈希表中存入数组示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  9. bzoj1076

    好像题目有点问题?且现在决定不吃的宝物以后也不能再吃好像下次还是可以吃的,就是这样然后明显是状压dp,注意这道题明显倒推更容易因为顺推很可能从一个无效状态推到有效状态 ..,..] of double ...

  10. Linux Shell编程(2)——第一个shell程序

    在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表.这至少让你执行它 时不必重新按顺序键入相同功能的命令序列.一个清空/var/log目录下的日志文件的脚本 # Cleanup # 必须以 ...