小编cif*_*key的帖子

Scrapy单元测试

我想在Scrapy(屏幕抓取器/网络爬虫)中实现一些单元测试.由于项目是通过"scrapy crawl"命令运行的,我可以通过像nose这样的东西运行它.由于scrapy是建立在扭曲的基础之上,我可以使用它的单元测试框架试用吗?如果是这样,怎么样?否则,我想获得的鼻子工作.

更新:

我一直在谈论Scrapy-Users,我想我应该"在测试代码中构建Response,然后使用响应调用该方法并声明[I]在输出中获得预期的项目/请求".我似乎无法让这个工作.

我可以构建一个单元测试测试类并进行测试:

  • 创建一个响应对象
  • 尝试用响应对象调用我的蜘蛛的parse方法

然而,它最终会产生这种追溯.任何洞察力为什么?

python unit-testing nose scrapy

56
推荐指数
5
解决办法
2万
查看次数

Libtorrent - 给定磁力链接,你如何生成一个torrent文件?

我已通读了手册,但找不到答案.给定一个磁力链接我想生成一个torrent文件,以便它可以在下次启动时加载,以避免重新加载元数据.我尝试过快速恢复功能,但是当我这样做时仍然需要获取元数据,这可能需要相当长的时间.我见过的例子是为新的torrent创建torrent文件,我想在其中创建一个匹配磁体uri.

c++ python libtorrent

18
推荐指数
2
解决办法
8130
查看次数

Matplotlib svg作为字符串而不是文件

我想使用Matplotlib和pyplot生成一个svg图像,用于Django框架.到目前为止,我有它生成链接到页面的图像文件,但有没有办法直接获取svg图像作为unicode字符串,而无需写入文件系统?

python django svg matplotlib

14
推荐指数
2
解决办法
5720
查看次数

用Python中的Whoosh搜索模糊字符串

我在MongoDB中建立了一个庞大的银行数据库.我可以轻松地获取此信息并在其中创建索引.例如,我希望能够匹配银行名称'Eagle Bank&Trust Co of Missouri'和'Eagle Bank and Trust Company of Missouri'.以下代码适用于简单模糊这样,但无法实现上述匹配:

from whoosh.index import create_in
from whoosh.fields import *

schema = Schema(name=TEXT(stored=True))
ix = create_in("indexdir", schema)
writer = ix.writer()

test_items = [u"Eagle Bank and Trust Company of Missouri"]

writer.add_document(name=item)
writer.commit()

from whoosh.qparser import QueryParser
from whoosh.query import FuzzyTerm

with ix.searcher() as s:
    qp = QueryParser("name", schema=ix.schema, termclass=FuzzyTerm)
    q = qp.parse(u"Eagle Bank & Trust Co of Missouri")
    results = s.search(q)
    print results
Run Code Online (Sandbox Code Playgroud)

给我:

<Top 0 Results for And([FuzzyTerm('name', u'eagle', boost=1.000000, minsimilarity=0.500000, …
Run Code Online (Sandbox Code Playgroud)

python information-retrieval fuzzy-search whoosh

11
推荐指数
1
解决办法
3963
查看次数

从脚本运行Scrapy - 挂起

我正试图从这里讨论的脚本运行scrapy .它建议使用这个片段,但是当我这样做时,它会无限期地挂起.这是在.10版本中写的; 它仍然与目前的稳定兼容吗?

python scrapy

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

Eclim - 将org.eclim.java.run.mainclass设置为什么?

我无法获得:Java命令在eclim中工作.当我运行它时,我得到:

java.lang.RuntimeException: Required setting 'org.eclim.java.run.mainclass' has not been set.
    at org.eclim.plugin.jdt.command.src.JavaCommand.execute(JavaCommand.java:107)
    at org.eclim.command.Main.main(Main.java:89)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.martiansoftware.nailgun.NGSession.run(NGSession.java:334)
Run Code Online (Sandbox Code Playgroud)

似乎有很多解释如何解决这个问题,例如这篇文章在SO或这里,但他们都说通过"设置项目的org.eclim.java.run.mainclass属性":ProjectSettings.我的问题是我将它设置为什么?无论我在尝试编写更改时放置什么,vim都说"操作包含错误.有关详细信息,请参阅位置列表."

java vim eclim

6
推荐指数
2
解决办法
2158
查看次数

Python - 在两个dicts中查找非共同项

假设我有两个词典:

a = {'a': 1, 'b': 2, 'c': 3}
b = {'b': 2, 'c': 3, 'd': 4, 'e': 5}
Run Code Online (Sandbox Code Playgroud)

什么是找到两者之间的非相互项目的最pythonic方式,以便我ab我得到:

{'a': 1, 'd': 4, 'e': 5}
Run Code Online (Sandbox Code Playgroud)

我以为:

{key: b[key] for key in b if not a.get(key)}
Run Code Online (Sandbox Code Playgroud)

但这只是一种方式(b项不在a)和

a_only = {key: a[key] for key in a if not b.get(key)}.items()
b_only = {key: b[key] for key in b if not a.get(key)}.items()

dict(a_only + b_only)
Run Code Online (Sandbox Code Playgroud)

接缝非常凌乱.还有其他方法吗?

python

3
推荐指数
1
解决办法
222
查看次数