HTML元素问题的类属性

时间:2017-10-04 08:49:27

标签: python html web-scraping

我对列表项的class属性感到困惑,在无序列表中。

Developer tools view

我提到我正在编写一个python程序来从一个网站抓取,该网站以ul列表中的li元素为目标。 ul里面有45个li元素,其中17个没有分配给它们的“class”属性。这是ul的一部分。

ul view

我的自定义目标选择器是“ul.vacanciesList li”,我只获得17个没有“class”关键字的选择器。

我的问题是,li元素的标记中出现的“class”关键字是什么,以及如何定位它们(​​li-s)以获取所有45个,而不仅仅是没有类的

自定义代码:

'title' => ['selector' => 'h3'],
            'containerSelector' => 'ul.vacanciesList li',
            'detailSelector' => '#bigbox',
            'location' => ['selector' => 'div.place'],

谢谢。

1 个答案:

答案 0 :(得分:1)

空属性(没有值的属性)有效。 <tag class>""只表示该元素属于类soup = bs4.BeautifulSoup(page, 'lxml') litems = soup.findAll('li', {'class' : ''}) 。有关详细信息,请阅读此answer

查找列表项:

ul

或者,您可以找到class标记,该标记的listitems属性值已分配给它,并从那里获取所有soup = bs4.BeautifulSoup(page, 'lxml') # get the unordered list of interest unordered_list = soup.finqd('ul', {'class' : 'article vacanciesList'}) # extract all the list items from them list_items = unordered_list.findAll('li') print(list_items)

var logger = new winston.Logger({
transports: [
    new winston.transports.File({
        level: 'info',
        filename: './logs/all-logs.log',
        handleExceptions: true,
        json: true,
        maxsize: 5242880, //5MB
        maxFiles: 5,
        colorize: false
    })
],
   exitOnError: false
}),

logger.stream = {
    write: function(message, encoding){
        logger.info(message);
    }
};

app.use(require("morgan")("combined", { "stream": logger.stream }));