在Django中使用scrapy和scrapyd时不输入def(parse)

维拉Xeva

我仍在学习scrapy,我正在Django项目中尝试使用scrapy和scrapyd。

但是我注意到蜘蛛只会进入def(parse)

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule

class NewsSpider(CrawlSpider):
    print("Start SPIDER")
    name = 'detik'
    allowed_domains = ['news.detik.com']
    start_urls = ['https://news.detik.com/indeks/all/?date=02/28/2018']

def parse(self, response):
    print("SEARCH LINK")
    urls = response.xpath("//article/div/a/@href").extract()        
    for url in urls:
        url = response.urljoin(url)
        yield scrapy.Request(url=url, callback=self.parse_detail)

def parse_detail(self,response):
    print("SCRAPEEE")
    x = {}
    x['breadcrumbs'] = response.xpath("//div[@class='breadcrumb']/a/text()").extract()
    x['tanggal'] = response.xpath("//div[@class='date']/text()").extract_first()
    x['penulis'] = response.xpath("//div[@class='author']/text()").extract_first()
    x['judul'] = response.xpath("//h1/text()").extract_first()
    x['berita'] = response.xpath("normalize-space(//div[@class='detail_text'])").extract_first()
    x['tag'] = response.xpath("//div[@class='detail_tag']/a/text()").extract()
    x['url'] = response.request.url
    return x

打印(“启动蜘蛛”)在日志中,但打印(“搜索链接”)不在日志中。

我也有这种错误

  [Launcher,3804/stderr] Unhandled error in Deferred:  

请帮忙。PS:当我在Django之外运行它时,它工作得很好

谢谢

尼科洛·加斯帕里尼(NicolòGasparini)

在我看来,您似乎缺少蜘蛛中的爬网规则。

尝试添加

KwSpiderSpider.rules = [
    Rule(LinkExtractor(allow=".+", unique=True),callback='parse'),
]

到您的代码start_urls
我不明白它如何在django之外工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在scrapy管道中使用scrapyd作业ID

如何在Scala中使用val声明不输入的函数

使用大数时如何使BSD seq不输出+和e?

当输入值较大时,不输出

不输入 www 时找不到 404

在Django中使用modelchoicefield时如何删除括号和名称?

在Django中使用Textfield和Charfield模型时出错

我可以在def函数中使用django fileds值吗?

在 Django 中使用不带“def __init__”的“self”实例

在 python 中使用 def

使用Parse和Multidex重复输入

使用Softmax和Transfer Learning时,Python Keras不输出概率向量

一起使用django和scrapy

在JUnit5中使用Testcontainers和gradle时,无法解析“ DockerImageName”中的方法“ parse”

scrapyd {“ status”:“错误”,“ message”:“使用\” scrapy \“查看可用命令”

在Spring Boot App中使用@Valid和BindingResult进行表单输入验证时出现问题

在Javascript中使用表单提交时如何防止结果和输入数据消失

如何在Django中使用request.GET []从广播和日期输入中获取值

MySQL:当对不输入对列表(没有主键)时更新

不输入www时,URL重定向到hompage

Django表单不输出输入的自定义类属性

在pandoc脚本中使用'def'

在Scrapy项目中使用Django的模型(在管道中)

在Scrapy中使用CSS和Xpath选择器

输入字符以打印错误,但在c中输入0时不输入

在不输入密码的情况下使用ssh的Ubuntu 10.04

使用DataSourceNullValue的DataGridView:不输入任何内容或nullValue

使用Teamviewer登录Windows而不输入Windows密码

使用tf.import_graph_def追加新的输入管道时,如何避免图形重复?