小编jay*_*ing的帖子

在CsvItemExporter sublcass中Scrapy 1.0+正确设置访问?

以前,访问子类CsvItemExporter中的设置,我需要修改设置中指定的分隔符,可以使用以下方法完成:

from scrapy.conf import settings
Run Code Online (Sandbox Code Playgroud)

但是,该方法现已折旧:

ScrapyDeprecationWarning:scrapy.conf不推荐使用模块,crawler.settings而是使用scrapy.conf导入设置中的属性

我现在该怎么办?通常from_crawler," from_settings班级方法不起作用CsvItemExporter.

python scrapy web-scraping

7
推荐指数
1
解决办法
328
查看次数

Django 1.9无法修改unique_together(ValueError)错误的约束数

我使用inspectdb创建了我的模型,当django生成以下内容时,它让我感到奇怪,因为只有一个这样的索引,但我让它成为

unique_together =(('p_id','v_id','sku',),('p_id','v_id','sku',))

现在我正在尝试将'sku2'添加到此索引中,并且'migrate'失败并显示以下内容:

 File "/home/user/.pyenv/versions/2.7.11/envs/master2/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 347, in _delete_composed_index
    ", ".join(columns),
ValueError: Found wrong number (2) of constraints for vendor_products(p_id, v_id, sku)
Run Code Online (Sandbox Code Playgroud)

这是我的模特:

class Products(models.Model):
    p_id = models.OneToOneField(MasterProducts, models.DO_NOTHING, db_column='p_id', primary_key=True)
    v_id = models.ForeignKey('Sellers', models.DO_NOTHING, db_column='v_id')
    sku = models.TextField()
    sku2 = models.TextField(blank=True, null=True)

    class Meta:
        managed = True
        db_table = 'products'
        unique_together = (('p_id', 'v_id', 'sku',), ('p_id', 'v_id', 'sku',))
Run Code Online (Sandbox Code Playgroud)

我尝试将unique_together更改为(('p_id','v_id','sku',),)和('p_id','v_id','sku'),结果相同.

我也尝试使用数据库手动删除唯一索引并使用django重新创建它,它仍然不会让我添加sku2.

为什么会发生这种情况,我该如何解决?

python django django-migrations

6
推荐指数
1
解决办法
2362
查看次数

如何从Scrapy选择器中提取原始html?

我正在使用response.xpath('//*')re_first()提取js数据,然后将其转换为python本机数据.问题是extract/re方法似乎没有提供一种不取消引用html的方法

原始html:

{my_fields:['O'Connor Park'], }
Run Code Online (Sandbox Code Playgroud)

提取输出:

{my_fields:['O'Connor Park'], }
Run Code Online (Sandbox Code Playgroud)

将此输出转换为json将无法正常工作.

最简单的方法是什么?

python scrapy parsel

5
推荐指数
1
解决办法
5708
查看次数