小编Tob*_*ias的帖子

BeautifulSoup返回意想不到的额外空间

我试图用BeautifulSoup从html文档中获取一些文本.在一个非常相关的案例中,它产生了一个奇怪而有趣的结果:在某个点之后,汤在文本中充满了额外的空间(一个空格将每个字母与下一个字母分开).我试图搜索网络以找到原因,但我只遇到了一些有关相反错误的消息(根本没有空格).

你有什么建议或暗示它为什么会发生,以及如何解决这个问题?

这是我创建的最基本的代码:

from bs4 import BeautifulSoup

import urllib2
html = urllib2.urlopen("http://www.beppegrillo.it")
prova = html.read()
soup = BeautifulSoup(prova)
print soup
Run Code Online (Sandbox Code Playgroud)

这是从结果中得到的一条线,这个问题开始出现的那一行:

value = \"Giuseppe labbate ogm?non vorremmo nuovi uccelli chiamati lontre \"> <input onmouseover = \"提示('<cen terclass =\\'title _ video\\'> <b> G iuseppelabbateogm?nonvorremmonuoviuccel lichiamatilontre <

html python text beautifulsoup

16
推荐指数
2
解决办法
2336
查看次数

如何将长度约束添加到文本字段

TEXT在使用PostgreSQL(或其他一些支持它的数据库)时似乎最好使用数据类型,而不是character varying(NN)因为没有性能损失,并且可以通过删除和重新应用约束而不影响任何约束来调整最大可能长度使用该领域的观点等.

但是,这个约束是如何应用的(SQL代码)?

sql postgresql constraints

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

Plone:collective.transmogrifier.sections.constructor在导入时不写对象

我几乎成功地将我的ZODB(一小部分文件夹,包括从其他文件夹中获取的资源)的摘录转移到另一个Plone实例; showstopper是:在导入期间,我的对象不会被写入.这是我的导出脚本:

[transmogrifier]
pipeline =
    sitewalker
    xmlwalker
    uidextractor
    encapsulator
    manifestexporter
    fileexporter
    marshaller
    propertiesexporter
    commentsexporter
    datacorrector
    portletsexporter
    writer
    EXPORTING

[sitewalker]
blueprint = quintagroup.transmogrifier.sitewalker
path =
    folder1
    folder2

[xmlwalker]
blueprint = collective.transmogrifier.sections.xmlwalker

[uidextractor]
# my own section which parses the html text of the given fields,
# checks the href and src attributes for UIDs, and injects entries
# for the refered objects into the pipeline
blueprint = my.transmogrifier.uidextractor
inspect_fields =
    text
    description
    notes

[encapsulator]
blueprint = plone.app.transmogrifier.mimeencapsulator
mimetype = item/_mimetype
field …
Run Code Online (Sandbox Code Playgroud)

data-migration plone transmogrifier plone-4.x

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

在Plone扩展设置中查找需求规范

我有一个Plone站点(大约4.2.4,从version.txt根目录中的一个说明),我想更新到最新版本(我发现了这个方法)(截至目前4.3.4); 我继承了过多的固定版本,这些版本没有记录,可能已经过时了.

当注释掉我versions.cfg,使用http://dist.plone.org/release/4.3-latest/versions.cfg替代和重新运行buildout-vvv,我得到:

Develop: '.../src/collective.mathjax'
in: '.../src/collective.mathjax'
/tmp/tmpbXsnpD -q develop -mxN -d .../develop-eggs/tmp2yhe9ubuild
...
Installing 'zc.recipe.egg'.
We have the best distribution that satisfies 'zc.recipe.egg<2dev'.
Picked: zc.recipe.egg = 1.3.2
...
There is a version conflict.
We already have: zc.recipe.egg 1.3.2.
While:
  Installing.
  Getting section test.
  Initializing section test.
  Installing recipe zc.recipe.testrunner.
Run Code Online (Sandbox Code Playgroud)

因此似乎有一些要求的子2版本zc.recipe.egg,但我找不到它.(在我versions.cfg看来它是固定的2.0.1- 曾经工作,令人惊讶.)

我搜索了树findgrep,寻找rc.recipe.eggversion*.cfg …

plone buildout plone-4.x

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

如何使用M2Crypto从.pem文件加载受密码保护的私钥?

我在.pem文件中有一个受密码保护的私钥; 我想用它来签署对远程服务器的请求.我能够加载密钥并在提示输入密码后输入密码:

python
>>> import M2Crypto
>>> pk = M2Crypto.RSA.load_key('private.pem')
Enter passphrase:
>>>
Run Code Online (Sandbox Code Playgroud)

但是,我需要这个服务器进程,每天早上重新启动,因此必须以某种方式自动传递密码.为此目的,load_key方法支持一个回调参数,所以我尝试了几种变体:

>>> def gimmepw():
...     return 'mysecret'
...
>>> pk = M2Crypto.RSA.load_key('private.pem', gimmepw)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local/Plone/Python-2.4/.../M2Crypto/RSA.py", line 351, in load_key
    return load_key_bio(bio, callback)
  File "/usr/local/Plone/Python-2.4/.../M2Crypto/RSA.py", line 372, in load_key_bio
    rsa_error()
  File "/usr/local/Plone/Python-2.4/.../M2Crypto/RSA.py", line 302, in rsa_error
    raise RSAError, m2.err_reason_error_string(m2.err_get_error())
M2Crypto.RSA.RSAError: bad password read
>>>
Run Code Online (Sandbox Code Playgroud)

(用"lib/python2.4/site-packages"替换"...")

我究竟做错了什么?

python python-2.4 pem m2crypto

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

如何在Debian Lenny上使用ssl,readline和zlib编译Python 2.4.6

我有一个带Debian 7.1的虚拟Linux盒子,我需要一个Python 2.4.6来恢复旧的Zope安装(当然,为了将它更新为Plone 4).

我当然需要ssl支持,当我正在编译时,我readline当然也想要.最后,当然我需要zlib,否则ez_setup.py等等都行不通; 我很难被zlib包括在内.

我下载的Python 2.4.6的压缩包,启用sslModules/Setup.dist:

SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto
Run Code Online (Sandbox Code Playgroud)

......并呼吁:

./configure  --prefix=/my/dest/dir --with-zlib
make
Run Code Online (Sandbox Code Playgroud)

make给我一些警告大约在年底cryptnis,但make install不会产生任何错误.但是,由此产生的Python既支持readlinessl支持,但没有zlib; 因此,我无法使用ez_setup.pysetuptools/pip等.

我试图取消注释并重新排除该行

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
Run Code Online (Sandbox Code Playgroud)

来自Setup.dist.

安装的一些系统包:

  • zlib1g-dev
  • lib32z1-dev
  • libreadline-gplv2-dev

还有什么我错过的吗?

更新后,继续阅读/sf/answers/283330841/:

我做到了

$ sudo apt-get install zlib1g …
Run Code Online (Sandbox Code Playgroud)

python linux ssl debian zlib

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

如何用Git清理行结尾

我对Git很缺乏经验,这个让我感到困惑:

我只是将我的工作副本切换到另一个分支(一个简单的git checkout master),然后立即git status告诉我有关数百个已更改的文件.然而,这一切都与线路结束有关; a git diff --ignore-space-at-eol给了我很多警告:

warning: CRLF will be replaced by LF in src/.../somefile.js.
The file will have its original line endings in your working directory.
Run Code Online (Sandbox Code Playgroud)

我一般认为在版本化的文本文件中使用DOS样式的行结尾是一个坏主意,但这是他们最初提交的内容; 我在一个Linux机器中完成了这个,我得到的文件有CRLF行结尾.

在我的情况下清理的最佳方法是什么?我应该更改每个文件的行结尾并提交吗?

如何配置Git以避免将来出现这种情况?

git eol

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

让Vim在Windows上完全支持UTF-8

我使用vimgVim在Windows上,并vim在虚拟Linux机器进行编程.我经常需要更改gettext目录文件.但是,在两个Windows版本中对Unicode字符的支持似乎都不完整,可能是因为字符集.

例如,umlauts(äöü)工作得很好; 但排版引号(""或"ˮ)和其他一些字符,如MDASH和椭圆没有(他们在Linux中).Vim抱怨转换错误并以只读模式打开文件; 当覆盖它并存储时,那些字符就会被破坏.

其他Windows程序支持这些字符就好,例如TortoiseSVN.

请注意,这不是"错误的编码",latin-1而是代替utf-8,因为这也会影响变音符号.我所知道的设置enc,fenc,fencs,和:e ++enc=utf-8.

:version告诉我:版本7.3,MS Windows 32位GUI版本w/OLE支持,包括更正1-46; +multi_byte_ime/dyn.

更新:更新到Vim 7.4无法解决问题.+multi_byte_ime/dyn并且,由于操作的选项现在列出其可读性:+digraphs, -xfontset,-postscript(我不知道他们是否是利息).

由于我使用Linux Vim处理相同的文件(仍然是7.3,包括更正1-547),并且通过Samba,现在更新的Windows gVim,我尝试了以下内容:我打开了一个Linux版本的目录文件,以前用过有趣的引用字符好(:set enc? fenc?encoding=utf-8,fileencoding=utf-8)并将其保存为Latin-1(:set fenc=latin-1(文件标记已更改),更新标记,:w).我收到了转换错误; 但是,已经写了一些变化.

当使用相同的Linux版本重新打开文件时,我得到了正确的变音符号encoding=utf-8/ fileencoding=latin-1,但报错字符不正确.

vim utf-8

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

重命名Plone用户帐户

是否可以重命名Plone用户的ID?

有时人们有充分的理由改变他们的用户名,例如因为结婚.在配置文件中,名称信息可以轻松更改,但用户ID在某些地方写入,用户名(可能与该人的当前名称不匹配)可能会激怒组成员.

我找到了关于成员操纵的基本信息,但没有任何关于是否支持这一点的说法.

plone

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

刷新Plone ZCatalog中的非索引元数据

Zope目录包含具有索引属性(用作查询参数)和元数据属性(在访问搜索结果时可用)的目录对象.对于索引属性,当索引的计算逻辑发生变化时,可以重新编制索引.

我注意到我的getThumbnailPath 元数据字段对于我的一种基于Archetypes的内容类型是不正确的.当然,当方法改变时,元数据字段内容不会自动改变; 因此,我想在升级步骤中解决这个问题.

但是,似乎没有记录的方法来为元数据字段执行此操作; 该目录编制索引的文档并没有说太多关于这一点.

最先进的方法是什么?

  • 我有办法刷新某个元数据字段吗?
  • 我是否需要对受影响的类型进行目录搜索并重新索引每个项目(重新计算每个其他索引和元数据字段)?
  • 我应该创建一个同名的索引,之后我应该删除该索引,还是不管它是否重要?

更新:目前,我选择了第二种可能性,但是对于这种类型的1069个物体花费了大约100秒,而且所有其他物体也可能需要数小时才能受到影响; 有一个更有选择性的方式会很高兴.

plone archetypes plone-4.x

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