start_urls = ['https://item.jd.com/7652029.html',
'https://item.jd.com/100003395445.html',
'https://item.jd.com/7437708.html',
'https://item.jd.com/100003717483.html',
'https://item.jd.com/100003344497.html'
]
代码的其他部分是按照老师的思路完成的,整体的实现效果也是一样的,但是在页面的执行顺序上存在一些疑问。
(1) ‘https://item.jd.com/7652029.html’
(2) ‘https://item.jd.com/100003395445.html’
(3) parse()
(4) ‘https://item.jd.com/7437708.html’
(5) parse()
(6) ‘https://item.jd.com/100003717483.html’
(7) parse()
(8) ‘https://item.jd.com/100003344497.html’
(9) parse()
(10) parse()
我的代码在debug调试过程中发现其执行效果是:
第1个请求
第2个请求
第1个请求的解析函数,
第3个请求
第2个请求的解析函数
第4个请求
第3个请求的解析函数
第5个请求
第4个请求的解析函数
第5个请求的解析函数
并且重复执行三遍都是同样的执行顺序结果。
老师在视频最后提到相关说法,我的理解是:
scrapy是一个高效的异步框架,selenium是一个同步框架,这样的写法使得scrapy在请求过程中也变成了同步请求。
那么问题是:
既然是同步请求为代码执行顺序会是上述那样?
异步请求url是指url是随机请求吗?
感谢老师的回答!
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
了解课程