赞
踩
背景:scrapy抓取翻页链接的时候。如果有20页,则需要自动获取每一页的网址,然后回调给解析函数去处理
情况:只获取到第二页的url,后面所有的网页链接都没输出,且写入数据库或者保存文件,只有第一页的数据
概述:要知道xpath用extract抓取的网页链接是列表格式,比如['http://www.baidu.com/'],这个时候,你直接回调 ,并且打印下一页的网址,就会发现只有一个。且数据只有第一页的。
如果用extract_first提取的,则是字符串。如果url不完整则可以直接拼接,无需再进行转换了。
解决方案:直接在抓取到的网页链接后加入[0],提取出来列表里面的网页url。
下面是具体获取下一页url的代码例子:
- next_page=response.xpath(".//section[@class='pagination-wrap']/div/a[2]/@href").extract()
- if next_page:
- print(next_page[0])
- yield scrapy.Request(next_page[0], callback=self.parse)
- else:
- pass
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。