- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在解析 http://so.gushiwen.org/view_20788.aspx 时遇到问题
这就是我想要的:
"detail_text": ["
寥落古行宫,宫花寂寞红。白头宫女在,闲坐说玄宗。
"],
但我明白了:
"detail_text": ["
", "
", "
", "
", "
寥落古行宫,宫花寂寞红。", "白头宫女在,闲坐说玄宗。
"],
这是我的代码:
#spider
class Tangshi3Spide(scrapy.Spider):
name = "tangshi3"
allowed_domains = ["gushiwen.org"]
start_urls = [
"http://so.gushiwen.org/view_20788.aspx"
]
def __init__(self):
self.items = []
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//div[@class="main3"]/div[@class="shileft"]')
domain = 'http://so.gushiwen.org'
for site in sites:
item = Tangshi3Item()
item['detail_title'] = site.xpath('div[@class="son1"]/h1/text()').extract()
item['detail_dynasty'] = site.xpath(
u'div[@class="son2"]/p/span[contains(text(),"朝代:")]/parent::p/text()').extract()
item['detail_translate_note_url'] = site.xpath('div[@id="fanyiShort676"]/p/a/u/parent::a/@href').extract()
item['detail_appreciation_url'] = site.xpath('div[@id="shangxiShort787"]/p/a/u/parent::a/@href').extract()
item['detail_background_url'] = site.xpath('div[@id="shangxiShort24492"]/p/a/u/parent::a/@href').extract()
#question line
item['detail_text'] = site.xpath('div[@class="son2"]/text()').extract()
self.items.append(item)
return self.items
#pipeline
class Tangshi3Pipeline(object):
def __init__(self):
self.file = codecs.open('tangshi_detail.json', 'w', encoding='utf-8')
def process_item(self, item, spider):
line = json.dumps(dict(item))
self.file.write(line.decode("unicode_escape"))
return item
我怎样才能得到正确的文本?
最佳答案
您可以添加谓词 [normalize-space()]
以避免拾取空文本节点,即仅包含空格的节点:
item['detail_text'] = site.xpath('div[@class="son2"]/text()[normalize-space()]').extract()
关于python - 在 scrapy 中,我使用 XPATH 来选择 HTML 并得到许多不必要的 ""和,?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39360013/
jQuery attributeContainsPrefix [name^="value"] 对比 attributeStartsWith [name|="value"] 实际区别是什么? 最佳答案
在1.1部分在RFC 6749中,有四种角色:资源拥有者、资源服务器、客户端和授权服务器。 如果客户端和资源所有者是同一实体,OAuth 是否变得多余或不必要? 例如,我有一个封闭的 API 和一个面
我有一段代码,其中有一个带有保护子句的 raise 语句: def validate_index index # Change to SizeError raise ArgumentError
我看到了这篇文章( JPA Entity Lifecycle Events vs database trigger ),但它并没有像我在这里那样明确地询问: 当我插入 PK 值为 (null) 的行时
所以,我有一段代码看起来像 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){ // Do something }
我是一名优秀的程序员,十分优秀!