使用goose检索任何内容阅读文章内容

时间:2015-05-21 18:45:42

标签: python web-crawler goose

我正试图从.html文件中读取(为了方便起见,在这里指定了url)[1]。但有时候它并没有显示任何文字。请帮我解决这个问题。

使用的Goose版本:https://github.com/agolo/python-goose/ 目前的版本有一些错误。

@Override
public void onClick(View v) {

    Intent returnIntent = new Intent();
    String picked = "";

    switch (v.getId()) {
            case R.id.btnRed:
                picked = "RED";
                break;
            case R.id.btnYellow:
                picked = "YELLOW";
                break;
            case R.id.btnGreen:
                picked = "GREEN";
                break;
            case R.id.btnBlue:
                picked = "BLUE";
                break;
    }
    if(picked.equals(currentColor)){
           //If picked color is same as currentColor do nothig
            Toast.makeText(getApplicationContext(), "Choose other color please", Toast.LENGTH_LONG).show(); 
    } else {
       //return pikced color
        returnIntent.putExtra("Color", picked);
        setResult(RESULT_OK, returnIntent);
        finish();
    }
}

1 个答案:

答案 0 :(得分:2)

Goose确实使用了几个预定义元素,这些元素很可能是寻找顶级节点的良好起点。如果没有"已知"找到的元素,它开始寻找top_node,它通常是一个包含很多p标签的元素。您可以阅读extractors/content.py了解更多详情。

给定的文章没有很多共同文章的特征,它通常包含在文章标签中,或者是带有类和ID的div标签,例如“后期内容”,“#39;''故事机构','文章'等。它是一个带有id = 'docText'的div标签,没有段落,因此Goose无法预测它的好处。

我建议你在KNOWN_ARTICLE_CONTENT_TAGS {}} extractors/content.py中添加{{1>}常量的

KNOWN_ARTICLE_CONTENT_TAGS = [
    {'attr': 'id', 'value': 'docText'},
    ... other paths go here
]

这是提取的身体:

  

Chennai,12月19日 - 泰米尔纳德邦政府周一任命了一名   一人司法调查委员会调查原因   星期天在州首府钦奈发生踩踏事件,造成42人丧生   另外还有37人受伤。\ n \ n宣布组建该组织   甚至作为踩踏事件中遇难者家属的佣金也来了   对这出乎意料的悲剧感到痛苦和激动。\ n \ n无家可归的42人   在洪水救济的分配过程中,人们被践踏   在泰米尔纳德邦首都的一个避难所供应。\ n \ n官方说   随着避难所的大门打开,超过5000人涌入   导致踩踏事件。\ n \ n奇才,受害者的家属,说   管理不善导致了悲剧。 \ U2026