爬虫是在没有(用)API获取数据的情况下以Hack的方式获取数据的一种有效手段;进阶,就是从爬取简单页面逐渐过渡到复杂页面的过程。针对特定需求,爬取的网站类型不同,可以使用不同的python库相结合,达到快速抓取数据的目的。但是无论使用什么库,第一步分析目标网页的页面元素发现抓取规律总是必不可少的:有些爬虫是通过访问固定url前缀拼接不同的后缀进行循环抓取,有些是通过一个起始url作为种子url继而获取更多的目标url递归抓取;有些网页是静态数据可以直接获取,有些网页是js渲染数据需要构造二次请求……如果统统都写下来,一篇文章是不够的,这里举几个典型的栗子:
以从OPENISBN网站抓取图书分类信息为例,我有一批图书需要入库,但是图书信息不全,比如缺少图书分类,此时需要去openisbn.com网站根据ISBN号获取图书的分类信息。如《失控》这本书, ISBN: 7513300712 ,对应url为 http://openisbn.com/isbn/7513300712/,分析url规律就是以http://openisbn.com/isbn/作为固定前缀然后拼接ISBN号得到;然后分析页面元素作为固定前缀然后拼接ISBN号得到;然后分析页面元素,Chrome右键 —> 检查:直接使用urllib2 + re 来获得“Category:” 信息:import re
import urllib2
isbn = '7513300712'
url = '
category_pattern = re.compile(r'Category: *.*, ')
html = ur