python爬虫框架scrapy学习第六课
知识点:start_requests()
-
函数解释:该方法必须返回一个可迭代对象(iterable)。该对象包含了spider用于爬取的第一个Request。当spider启动爬取并且未制定URL时,该方法被调用。 当指定了URL时,make_requests_from_url() 将被调用来创建Request对象。 该方法仅仅会被Scrapy调用一次,因此您可以将其实现为生成器。该方法的默认实现是使用 start_urls 的url生成Request。
-
源码分析:针对start_urls中的每一个url 发起resquest请求。当start_urls中有多个链接时,逐步发起请求。
def start_requests(self):
for url in self.start_urls:
yield self.make_requests_from_url(url)
def make_requests_from_url(self, url):
return Request(url, dont_filter=True)
- 代码演示:
– 不显示引用start_requests展示爬取顺序和爬取结果
import scrapy
class KrSpider(scrapy.Spider):
name = 'kr'
allowed_domains = ['ifeng.com']
start_urls = [
'http://news.i