我想使用scrapy将这两个页面上的数据抓取和解析为制表符分隔的格式:这里和这里。我做了以下命令:
scrapy shell
fetch("https://www.drugbank.ca/drugs/DB04899")
print response.text我的两个问题: 1.例如,对于这页面,当我键入:
response.css(".sequence::text").extract()
[u'>DB04899: Natriuretic peptides B\nSPKMVQGSGCFGRKMDRISSSSGLGCKVLRRH']但当我打字时:
>>> response.css(".synonyms::text").extract()
[]
>>> response.css(".Synonyms::text").extract()
[]但是您可以看到网页上列出了同义词,因此输出不应该是空的。有人能证明我做错了什么吗?(我还尝试了其他标签,如同义词、同义词等)。
发布于 2018-04-17 15:45:07
页面上实际上没有带有synonyms或Synonyms类属性值的元素。
通过使用dt元素的“向右”和“同义词”文本,您可以使用following-sibling获得同义词。
In [2]: response.xpath("//dt[. = 'Synonyms']/following-sibling::dd/ul/li/text()").extract()
Out[2]:
['BNP',
'Brain natriuretic peptide 32',
'Natriuretic peptides B',
'Nesiritide recombinant']https://stackoverflow.com/questions/49881728
复制相似问题