对于不包含Scrapy和Python节点的特定类,有没有办法用一个空条目来代替节点值

2024-04-25 03:51:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python和scrapy从在线公司数据库中提取信息。每个公司的信息都完全包含在父节点中,但并非每个公司都有包含其网站的子节点,有些公司只有公司名称。这意味着当我使用xpath提取数据时,我会得到20个公司名称,但只有18个网址(每页),这意味着当我压缩列表并导出时,我只会得到前18个公司,而这些网站不匹配。对于没有将“网站信息”节点作为子节点之一的公司,是否有办法在网站列表中插入空白条目

多谢各位

<div class="company"> <p class="website"> www.company.co.uk</p> ... </div> <div class="company"> ... </div>

从上面看,当我跑步的时候

xpath('//div[@class="company"]/p/text()')

理想情况下,我会得到第二个公司节点的['www.company.co.uk','']项为空,因为他们没有网站的p节点。当我运行xpath时,我得到的公司名称列表比网站长,因此当我将它们压缩在一起时,列表不匹配


Tags: div名称信息列表节点网站www公司
1条回答
网友
1楼 · 发布于 2024-04-25 03:51:09

请附上一些代码,以便人们更好地了解您的问题

总的来说,您应该遵循下一种模式:

companies = response.xpath('//...some xpath here')
for company in companies:
    item = {}
    item['title'] = company.xpath('./...some title xpath here relative to company node').extract_first()
    item['website'] = company.xpath('./...some website xpath').extract_first()
    yield item

相关问题 更多 >