def FundIndex_parse(self, response):
'''
获取 fund.123.com.cn 导航中的栏目链接
@ColumnUrls 为导航中栏目的相对地址
@ColumnUrl 为拼接后的栏目链接
:param response:
:return:
'''
ColumnUrls = response.css('.nav-bar.nav-main ul li a::attr(href)').extract() #栏目列表
for ColumnUrl in ColumnUrls:
ColumnUrl = 'http://fund.123.com.cn' + ColumnUrl #栏目链接
yield Request(url = ColumnUrl,callback=self.FundList_parse)
ColumnNextUrl = response.css('.stock-list.mt25 .list-content ul li a::attr(href)').extract() #获取下一页链接
time.sleep(3)
if ColumnNextUrl:
print(ColumnNextUrl)
yield Request(url=ColumnNextUrl,callback=self.FundList_parse)
def FundList_parse(self,response):
'''
获取 fund.123.com.cn 各栏目列表页的文章链接
@ListUrls 为文章页链接(列表类型)
:param response:
:return:
'''
ListUrls = response.css('.list-content ul li h6 a::attr(href)').extract()
for ListUrl in ListUrls:
ListUrl = 'http://fund.123.com.cn' + ListUrl
yield Request(url=ListUrl,callback=self.FundContent_parse)
设想:ColumnUrl
是拼接好的列表链接,然后把栏目链接回调给FundList_parse
处理(FundList_parse
是把列表页中的文章链接提取出来),接下来ColumnNextUrl
是获取到下一页的链接,接着判断,如果ColumnNextUrl
存在,把ColumnNextUrl
回调自身,把列表页的文章连接提取出来。
实际:事实上获取到的下一页链接并没有回调给自身处理,请问这是什么原因?
FundList_parse的代码呢,只看到了FundIndex_parse