《Web Scraping with Python》 – Ryan Mitchell
2015年6月英文第一版,是我看到的第一本专门介绍python爬虫的书籍。
本文并不记录详细的实验记录,事实上我也并没有花时间这样做–时间有限。简要记录该书的主要内容和思路。
基础部分
首先介绍了基础的HTML知识(详情可参考《图解HTTP》),python进行web通信的基本库urllib/urllib2,和页面解析用的BeautifulSoup库(很方便,但据说效率不如Xpath),异常处理,还涉及正则表达式、Lambda表达式。
有价值的部分来了!
爬虫爬取时候的递归次数如果不加限制,终将崩溃,另一方面带宽资源也相当宝贵。介绍了爬取整个网站,甚至从整个Internet获取数据(最重要的区别是前者不获取外链)时的关键问题-去重,爬虫代码的灵活性也很重要。书中还对Scrapy的用法进行了简要介绍,和官方文档相比,直接给出了Logging和多个持久化的例子(json,csv,xml)。
API方面通过一些例子说明如何发请求、解析响应。在一些鉴权要求高的网站,发送请求时需要带上HTTP HEAD(第12章)。
Echo Nest是爬虫技术应用的典范,高度智能化的信息抓取。介绍了Twitter和Google的APIs。
详细介绍了爬取到的数据的存储问题,,涉及csv和mysql。另一方面,介绍文本数据读取问题(顺便把文本编码问题捋了捋),读取CSV文件,PDF/.docx(吐槽的很对)。
高级部分
目前知晓的部分有语言处理-NLTK库,爬虫测试unit test 和Selenuim库。
作者讨论了数据清洗,登陆爬取,爬取表格、JavaScript,图片处理和文本识别,避免爬虫陷阱,远程爬取(远程服务器爬取,Tor,远程Hosting)等主题,这些内容都可以单独研究,本次读书主要学习了基础部分。
值得注意的是,书中的Additional Resources还是很有价值的,毕竟篇幅有限,作者还是很厚道的给出了深入学习的资源。