小编Sam*_*m P的帖子

Python lxml.etree - 从字符串或直接从链接解析XML更有效吗?

使用lxml.etreepython框架,直接从链接到在线xml文件解析xml是否更有效,或者更好地说,使用不同的框架(如urllib2),返回一个字符串,然后从中解析?或者它没有任何区别?

方法1 - 直接从链接解析

from lxml import etree as ET

parsed = ET.parse(url_link)
Run Code Online (Sandbox Code Playgroud)

方法2 - 从字符串解析

from lxml import etree as ET
import urllib2

xml_string = urllib2.urlopen(url_link).read()
parsed = ET.parse.fromstring(xml_string)

# note: I do not have access to python 
# at the moment, so not sure whether 
# the .fromstring() function is correct
Run Code Online (Sandbox Code Playgroud)

或者是否有比这些方法更有效的方法,例如将xml保存到桌面上的.xml文件然后从那些解析?

python xml parsing lxml urllib2

10
推荐指数
1
解决办法
6856
查看次数

在docker中安装带节点的phantomjs

我正在尝试将phantomjs可执行文件安装/usr/local/bin在docker容器中,与节点一起安装.我想我几乎就在那里,但我对Docker很陌生,并且不太熟悉安装二进制文件或者使用Linux,因此很难找到我出错的地方.

这是我的docker文件:

FROM        node:6.4-onbuild

# Install phantomjs
WORKDIR     ~
RUN         apt-get install libfreetype6 libfreetype6-dev \
            && apt-get install libfontconfig1 libfontconfig1-dev
RUN         export PHANTOM_JS="phantomjs-2.1.1-linux-i686" \
            && wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2 \
            && tar xvjf $PHANTOM_JS.tar.bz2 \
            && mv $PHANTOM_JS /usr/local/share \
            && ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin

WORKDIR     /usr/src/app
RUN         npm run build
EXPOSE      8080
CMD         ["node", "./bin/start.js"]
Run Code Online (Sandbox Code Playgroud)

我在容器上运行bash,肯定有一些东西被调用phantomjs,/usr/local/bin但我假设我已经链接了错误的东西,或者它是一个无效的可执行文件.我从我的应用程序中抛出一个错误,告诉我没有phantomjs可执行文件/usr/local/bin.

谁能给我一些指示?如果您发表评论,很高兴提供更多详细信息.

node.js phantomjs docker devops

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

apache solr响应中的字段在它们应该是单数时是多值的

我遇到了Apache Solr的问题,我在JSON响应中接收包含在列表中的字段,但它们应该是单数的.下面是一个schema.xml中exerpt,两个示例领域给了我一个问题,是django_ctdjango_id:

  <fields>
    <!-- general -->
    <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
    <field name="django_ct" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="django_id" type="string" indexed="true" stored="true" multiValued="false"/>
Run Code Online (Sandbox Code Playgroud)

以下是如何将数据发布到Solr的示例:

<doc>
    <field name="id">search.productcategory.3</field>
    <field name="gender">M</field>
    <field name="name">OBQYHSOQLWOUEHRMPSDI</field>
    <field name="text">M\nOBQYHSOQLWOUEHRMPSDI</field>
    <field name="django_id">3</field>
    <field name="django_ct">search.productcategory</field>
</doc>
Run Code Online (Sandbox Code Playgroud)

以下是存储在solr中的文件示例:

  "response": {
    "numFound": 1,
    "start": 0,
    "docs": [
      {
        "django_ct": [
          "search.productcategory"
        ],
        "name": [
          "Example"
        ],
        "text": [
          "Male\nExample"
        ],
        "id": "search.productcategory.2",
        "gender": [
          "Male"
        ],
        "django_id": [
          2
        ],
        "_version_": 1502081283634757600
      }
    ] …
Run Code Online (Sandbox Code Playgroud)

apache django solr django-haystack solr-multy-valued-fields

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

如何在 Haskell 中建模分层数据类型?

我有很多类型,它们的层次结构存储了一些有用的信息。我试图避免将类型层次结构的知识融入到对其进行操作的函数中。

以下是斯坦福自然语言处理的类型依赖的一小段摘录:

root - root
dep - dependent
  aux - auxiliary
    auxpass - passive auxiliary 
    cop - copula
  arg - argument 
    agent - agent
Run Code Online (Sandbox Code Playgroud)

我想创建一些反映此结构的数据类型,以便我可以定义一些只能对某些类型进行操作的函数。当我有一个对 an 进行操作的函数时arg,我用来表示的类型arg也应该包含agent,但 for 的类型agent不应包含arg。for 的类型dep应包含其下方的任何内容。

这在 haskell 中可能吗?我一直在尝试声明各种类型data来对此进行建模,但由于数据类型无法使用另一种数据类型的构造函数,因此我无法使其工作。

我怀疑这种方法可能不适用于 Haskell,所以如果是这种情况,您通常如何处理这些绝对不希望扁平化层次结构的情况?

haskell

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

如何检查 DNSSEC 与 Node.js 的合规性?

我正在构建一些 Web 分析工具,但在检查 NodeJS 应用程序中的 DNSSEC 合规性时遇到一些困难。dns标准库中的模块似乎不接受任何 DNSSEC 记录类型。我正在尝试查找rrsig, ds, nsecnsec3文档没有将它们列为要解析的有效 rrtypes。用 NodeJS 可以做到这一点吗?

javascript dns node.js dnssec

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

gcc execstack标志究竟允许在什么情况下使用,以及如何执行呢?

我这里有一些示例代码,用于理解初学者CTF的某些C行为:

// example.c

#include <stdio.h>


void main() {
        void (*print)();

        print = getenv("EGG");
        print();
}
Run Code Online (Sandbox Code Playgroud)

编译: gcc -z execstack -g -m32 -o example example.c

用法: EGG=$(echo -ne '\x90\xc3) ./example

如果我用execstack标志编译代码,则程序将执行我在上面注入的操作码。没有该标志,该程序将由于分段错误而崩溃。

为什么会这样呢?是因为getenv将实际的操作码存储在堆栈上,而execstack标志允许跳转到堆栈吗?还是getenv将指针推入堆栈,关于内存的哪些部分可执行的还有其他一些规则?我阅读了联机帮助页,但是我无法确切了解规则是什么以及如何执行它们。

另一个问题是,我认为我确实也缺少在调试时可视化内存的好工具,因此很难弄清楚这一点。任何建议将不胜感激。

c x86 gcc

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

Python 请求,警告:urllib3.connectionpool:Connection pool is full

我在 python 3 中使用 requests 库,尽管我尽了最大努力,但我无法让以下警告消失:

警告:requests.packages.urllib3.connectionpool:连接池已满,丢弃连接:myorganization.zendesk.com

我在多线程环境中使用请求同时获取和发布 json 文件到单个主机,绝对没有子域。在当前的设置中,我只使用了 20 个线程。

我尝试使用 aSession来获取重用连接的请求,从而解决问题,但没有奏效。这是我的类构造函数中的代码:

self.session = requests.Session()
adapter = requests.adapters.HTTPAdapter(
    pool_connections=100, pool_maxsize=100)
self.session.mount('http://', adapter)
self.session.headers.update({'Connection':'Keep-Alive'})
self.session.auth = (self._user+"/token", self._token)
Run Code Online (Sandbox Code Playgroud)

根据这里的建议,考虑到我正在使用的线程数,我不需要将池连接增加那么多,但尽管如此,即使增加 100,我也会收到此警告。

这让我认为根本没有重用连接,或者如果是,由于某种原因正在创建太多连接。我已经更新了请求,所以它是最新的版本。

有没有人有任何想法我可以摆脱这个?我正在调试一些代码,我认为这是某些请求未正确发出的罪魁祸首。

有关的:

我可以更改 Python 的“请求”模块的连接池大小吗?

python multithreading urllib3 python-requests

2
推荐指数
1
解决办法
5317
查看次数

如何强制eclipse使用SceneBuilder可执行文件?Mac os x

我正在尝试让SceneBuilder Eclipse v4.4.2在Mac OS X上运行.我遵循本教程的建议:http://code.makery.ch/library/javafx-8-tutorial/part1/.我从这里下载了Mac OS .dmg版本的SceneBuilder应用程序:http://gluonhq.com/products/downloads/ .它作为一个独立的运行时工作.

当我尝试配置Eclipse以将app用作e(fx)eclipse包的一部分时,Eclipse似乎被配置为Contents/MacOs/scenebuilder-launcher.sh在应用程序包内容中查找该文件.我拥有的应用程序版本没有它,而只是它有可执行文件Contents/MacOs/SceneBuilder.

无法启动SceneBuilder [...]无法运行程序"/Applications/SceneBuilder.app/Contents/MacOs/scenebuilder-launcher.sh".没有相应的文件和目录.

有谁知道我应该使用哪个版本的SceneBuilder(以及我可以在哪里获得它),还是有一个hacky解决方案来对此进行排序?

只是单独使用SceneBuilder,看起来它是WindowBuilder的一大步,很遗憾只是找到它的打包/编译版本一直很困难!

eclipse javafx scenebuilder

2
推荐指数
1
解决办法
5506
查看次数

通过写入micro SD卡来配置树莓派wifi

我有一个树莓派,但没有外部键盘、鼠标或以太网线来设置它 - 但我有微型 SD 读卡器。有没有办法让我直接将无线互联网配置写入 micro-sd 卡,以便树莓派能够连接到 wifi,然后允许我通过 ssh 登录?

micro-sd 卡上已经安装了 Raspbian。

raspberry-pi raspbian

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