python - 如何删除scrapy输出中的逗号

标签 python scrapy

我正在研究一个 scrapy 蜘蛛。这是我的代码:

item = MyItem()
item['Description'] = response.xpath('//*[@id="textepresentation"]//p').extract()
item['Description'] = [ '\,'.join(field.split(',')) for field in item.get('Description', [])]

我得到这个结果:

 [ u'<p>Some text.</p>',
             u'<p>\xa0</p>',
             u'<p>\xa0</p>',
             u'<p>\xa0</p>',
  u'<p>Some other text.</p>',
              u'<p>\xa0</p>',
              u'<p>\xa0</p>'],

我想删除空 <p> </p>标签:

item['Description'] = [ ''.join(field.replace('<p>'u'\xa0''</p>', '').encode('utf-8')) for field in item.get('Description', [])]

我得到这个结果:

['<p>Some text.</p>',
             '',
             '',
             '',
 '<p>Some other text.</p>',
             '',
             ''],

现在,我怎样才能删除结果中的逗号来得到这个?

['<p>Some text.</p>'
 '<p>Some other text</p>']

最佳答案

您需要获取text()并调用extract_first():

response.xpath('//*[@id="textepresentation"]//p/text()').extract_first()

关于python - 如何删除scrapy输出中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35294849/

相关文章:

python - 如何并行遍历两个列表?

Python:生成可用于 MySQL 的日期时间字符串

python - 在 python 3 中,如何将 bytes 对象中的单个字节放入列表而不将它们转换为整数?

python - 根据节点属性 NetworkX 将图划分为太阳图

Python stderr - 无法解析异常消息

session - 在 scrapy 蜘蛛中访问 session cookie

python - 带有scrapy的 Selenium 用于动态页面

python - 如何让scrapy爬虫不以指数方式聚合结果

python - Scrapy 抓取刀无法抓取过第一页

单击绘图时绘制点的 Python GUI?