鱼C论坛

 找回密码
 立即注册
查看: 1175|回复: 3

[已解决]Scrapy框架的爬虫文件中遇到的问题?

[复制链接]
发表于 2020-7-31 19:40:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jjxx2005 于 2020-7-31 19:51 编辑
import scrapy
from C005.items import C005Item
class JklSpider(scrapy.Spider):
    name = 'bk'
    # allowed_domains = ['www.123.com']
    start_urls = ['https://www.qiushibaike.com/']
    页码 = 2
    def parse(self, response):
        总页数 = int(response.xpath(r'//a/span/text()').extract()[-2][1:-1])
        文字 = response.xpath('//a[@class="recmd-content"]/text()').extract()
        print(文字)
        item = C005Item()
        item['文字'] = 文字
        yield item # 在一个函数中不能做两次返回,return和yield我都试过不行

        if self.页码 <= 总页数:
            url = f'https://www.qiushibaike.com/8hr/page/{self.页码}/'
            self.页码 += 1
            return scrapy.Request(url=url,callback=self.parse)

这个网页一共13页,第一页的url是https://www.qiushibaike.com/    从第2页到第13页 就变成了https://www.qiushibaike.com/8hr/page/2/     https://www.qiushibaike.com/8hr/page/3/  以此类推
我的起始url是  https://www.qiushibaike.com/     然后想让他解析之后,判断页码,当页码小于总页码时,就继续解析从第2页到第13页
这些都没问题

但是我需要做持久化存储。这时就要用   return item  或  yield item 可是一个 def 下面我无法使用两次 返回函数。。。

请问有没有什么好办法吗?

补充一下逻辑:
当url = https://www.qiushibaike.com 时,想直接yield item或return item
当页码 <= 总页数时,需要先  return scrapy.Request(url=url,callback=self.parse)  然后再 yield item或 return item
最佳答案
2020-7-31 19:50:11
提示:第一页的 URL 也可以是 https://www.qiushibaike.com/8hr/page/1/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-31 19:50:11 | 显示全部楼层    本楼为最佳答案   
提示:第一页的 URL 也可以是 https://www.qiushibaike.com/8hr/page/1/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-31 19:53:03 | 显示全部楼层
return scrapy.Request(url=url,callback=self.parse) 是要干啥?你的函数到底要返回什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-31 19:54:44 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-7-31 19:50
提示:第一页的 URL 也可以是 https://www.qiushibaike.com/8hr/page/1/

明白了 我试了好几个类似网站都是这样的情况 谢谢版主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 17:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表