小编pio*_*kuc的帖子

BeautifulSoup get_text不会删除所有标记和JavaScript

我正在尝试使用BeautifulSoup从网页获取文本.

下面是我写的脚本.它需要两个参数,第一个是输入HTML或XML文件,第二个是输出文件.

import sys
from bs4 import BeautifulSoup

def stripTags(s): return BeautifulSoup(s).get_text()

def stripTagsFromFile(inFile, outFile):
    open(outFile, 'w').write(stripTags(open(inFile).read()).encode("utf-8"))

def main(argv):
    if len(sys.argv) <> 3:
        print 'Usage:\t\t', sys.argv[0], 'input.html output.txt'
        return 1
    stripTagsFromFile(sys.argv[1], sys.argv[2])
    return 0

if __name__ == "__main__":
    sys.exit(main(sys.argv))
Run Code Online (Sandbox Code Playgroud)

不幸的是,对于许多网页,例如:http://www.greatjobsinteaching.co.uk/career/134112/Education-Manager-Location 我得到这样的东西(我只展示了几个第一行):

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    Education Manager  Job In London With  Caleeda | Great Jobs In Teaching

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-15255540-21']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
Run Code Online (Sandbox Code Playgroud)

我的剧本有什么问题吗?我试图将'xml'作为第二个参数传递给BeautifulSoup的构造函数,以及'html5lib'和'lxml',但它没有帮助.是否有一个替代BeautifulSoup可以更好地完成这项任务?我想要的只是提取将在此网页的浏览器中呈现的文本.

任何帮助都感激不尽.

html python xml screen-scraping beautifulsoup

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

如何重新创建Django项目的数据库?

我错误地删除了我的Django项目使用的MySQL数据库.幸运的是,这只是我的开发环境.如何重新创建数据库和所有表?

当我这样做python manage.py syncdb失败了

_mysql_exceptions.OperationalError: (1049, "Unknown database 'myproject'")
Run Code Online (Sandbox Code Playgroud)

任何帮助都感激不尽.

python mysql django django-models

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

为什么FEXPRs被放弃在Common Lisp?

许多LISP有FEXPR,但它们不包括在CL中.
我读到这是因为FEXRP与静态分析不兼容.
有人可以解释一下吗?

lisp fexpr

7
推荐指数
2
解决办法
1502
查看次数

pg_dump不写“ CREATE EXTENSION postgis;”。

我们已经使用pg_dump转储了使用postgis扩展名的数据库。在另一台计算机上手动创建数据库后,尝试使用psql将转储加载到数据库中失败。原来转储中没有包含必要的声明

CREATE EXTENSION postgis;
Run Code Online (Sandbox Code Playgroud)

postgis扩展名已安装在Postgres的目标实例中,但仅在成功手动执行CREATE EXTENSION转储加载后才安装。这似乎没什么大不了,但问题是:是否可以强制pg_dump将所有必需的CREATE EXTENSION foo;语句写入转储,这样我就不必手动执行此操作?我在pg_dump在线文档中看不到任何选择。

postgresql postgis

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

dask:指定进程数

我正在尝试使用 dask 进行一些令人尴尬的并行处理。出于某种原因,我必须使用 dask,但使用multiprocessing.Pool(5).map.

例如:

import dask
from dask import compute, delayed

def do_something(x): return x * x

data = range(10)
delayed_values = [delayed(do_something)(x) for x in data]
results = compute(*delayed_values, scheduler='processes')
Run Code Online (Sandbox Code Playgroud)

它有效,但显然它只使用一个过程。

如何配置 dask 以便它使用 5 个进程池进行此计算?

python dask

7
推荐指数
2
解决办法
3350
查看次数

Django用户名中的Unicode字符

我正在使用Django 1.4开发一个网站,我使用django-registration进行注册过程.事实证明,不允许Unicode字符作为用户名,只要用户输入例如中文字符作为用户名的一部分,注册就会失败:

该值可能只包含字母,数字和@/./ +/ - /_字符.

是否可以更改它,以便在用户名中允许使用Unicode字符?如果是,我该怎么办?此外,它可以导致任何问题吗?

python django unicode internationalization django-registration

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

Android:将资源ID作为参数传递

我有这个代码:

translateRight("iv1"); //iv1 is an id of an imageView

    private void translateRight(String st){

    ImageView img = (ImageView)findViewById(R.id.st);
        Animation a = AnimationUtils.loadAnimation(this, R.anim.translate_right);
        img.startAnimation(a);
    }
Run Code Online (Sandbox Code Playgroud)

我有"translateRight"这是一个显示动画的方法,但在这种方法中我应该传递一个资源ID; 我尝试了一个字符串,但它不起作用,我该怎么办?

android android-resources

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

将java BitSet保存到DB

使用JPA,我希望能够将BitSet保存到数据库并将其拉回到程序中.

假设我有:

@Entity
@Table(name = "myTable")
public class MyClass {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "Object_Id")
    protected long id;

    @Column(name = "Tags")
    protected BitSet tags;

... getters & setters etc...
}
Run Code Online (Sandbox Code Playgroud)

还应该定义"columnDefinition"吗?我真的不明白它是如何持久的(使用toString()?)而且它是如何从数据库中加载回来的.

你能帮帮我一下吗?

谢谢!

java persistence jpa bitset

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

numpy:使用operator - 包含None的数组

我有一个数字列表,我把它放入一个numpy数组:

>>> import numpy as np
>>> v=np.array([10.0, 11.0])
Run Code Online (Sandbox Code Playgroud)

然后我想从数组中的每个值中减去一个数字.它可以像numpy数组一样完成:

>>> print v - 1.0
[  9.  10.]
Run Code Online (Sandbox Code Playgroud)

不幸的是,我的数据通常包含缺失值,表示为None.对于这种数据,我收到此错误:

>>> v=np.array([10.0, 11.0, None])
>>> print v - 1.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
Run Code Online (Sandbox Code Playgroud)

我想为上面的例子得到的是:

 [  9.  10.  None]
Run Code Online (Sandbox Code Playgroud)

我怎样才能以简单有效的方式实现它?

python numpy missing-data

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

如何查找仅通过扩展名区分的文件

假设我有多个随机.txt文件,并且在同一个目录中我有几乎同名的文件,比如filename.sqlfilename.txt.如何在不选择任何其他文件的情况下找到这些.sql及其对应的文件?(这里的目的是将它们移动到一个单独的文件夹.相关文件和文件之间保证1:1的关系,这意味着我不担心移动最初提到的随机文件之一.).txt.txt.sql.txt.txt

unix shell

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