之前的深入爬取都是手工找链接的
很不符合框架的定义:准备怎么做,而不是怎么去做
我们想要什么样的东西?
说了摘菜(sspider)和炒菜(pipeline)其他的我们都不想参和的
所以是我们忽略了一个东西crawl
这东西就是自动跟进链接的
创建方法
之前说过有这几种类型的
现在来指定模板创建一个
内容
创建完成是这个样的
上面多了个rules,下面方法名称变了
但是,我保证,下面方法不会再涉及链接的提取
因为这个爬虫会自动捕捉全部的链接,然后通过rules筛选需要跟进的链接
比如 豆瓣电影250
链接正则
感觉链接不全是吧,http呢?
不用怕,页面能点的它就能访问
运行看一看
绝对可以啊,至少比原来更加方便快捷了啊
分析一下rules的结构
rules = (
Rule(LinkExtractor(allow=r'\?start=*.?'), callback='parse_item', follow=True),
)
1. rules是元组,内部是Rule对象
2. Rule制定规则,制定解析方法,链接跟进,链接样式
3. LinkExtractor链接过滤,通过正则进行链接的筛选
其实都不难,至少rules和Rule都不会变化了
关键是LinkExtractor
1. allow:保留链接,正则
2. deny:丢弃链接,正则
3. restrict_xpath:保留链接,xpath
4. allow_domains:允许域名
5. deny_domains:禁止域名
其实划分起来,就是正选反选,加双重过滤。
要的多,就反选,要的少,就正选,不过关键看啥方法适合提取我们刚好需要的链接
域名也是 一样,只是严格一点的话,双重过滤更保险
这样省去解析链接的功夫,怕的更快了。
当然了,偷懒是一方面,我的确抛弃了勤劳这个美德
但是,它底层 筛选肯定比我快啊,而且都加载了,我何必多次一举呢,所以我获得了聪明
所以说,我懒了,也变聪明了
聪明人都是懒人
想懒,证明你有变聪明人的潜质
能懒,那就是聪明人
想懒不能懒,那才叫不勤劳