Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XPath:如何从几乎相同的html结构中提取文本?_Html_Xpath_Web Scraping_Scrapy - Fatal编程技术网

XPath:如何从几乎相同的html结构中提取文本?

XPath:如何从几乎相同的html结构中提取文本?,html,xpath,web-scraping,scrapy,Html,Xpath,Web Scraping,Scrapy,我试图从网页中提取一些新闻文章,但其中一些文章的html结构发生了变化 在一个案例中,我有这样一个问题: 在另一个例子中,我有: 我是否可以使用XPath来提取这两种情况下的全文 编辑 对于第一个案例,我尝试了以下方法(使用scrapy shell): 其结果是: [u'\r\n ', u'\r\n ', u'\r\n ', u'\r\n ', u'\r\n ', u'\r\n ', u'Entendo as raz\x

我试图从网页中提取一些新闻文章,但其中一些文章的html结构发生了变化

在一个案例中,我有这样一个问题:

在另一个例子中,我有:

我是否可以使用XPath来提取这两种情况下的全文

编辑

对于第一个案例,我尝试了以下方法(使用scrapy shell):

其结果是:

[u'\r\n      ',
 u'\r\n      ',
 u'\r\n      ',
 u'\r\n      ',
 u'\r\n      ',
 u'\r\n      ',
 u'Entendo as raz\xf5es dos defensores do acordo ortogr\xe1fico. Tamb\xe9m entendo as raz\xf5es pelas quais uma criatura acredita que \xe9 Napole\xe3o Bonaparte. ',
 u'Mais dif\xedcil de compreender \xe9 o motivo que leva uma classe pol\xedtica inteira a seguir com respeito Napole\xe3o Bonaparte. O problema do acordo nem sequer \xe9 t\xe9cnico ou jur\xeddico. Isso \xe9 \xf3bvio: qualquer um sabe que aquilo \xe9 uma aberra\xe7\xe3o lingu\xedstica (a grafia como mera transcri\xe7\xe3o fon\xe9tica?) e uma ilegalidade completa (lembrar as acrobacias jur\xeddicas que se fizeram sobre o texto original). Sem falar da ambi\xe7\xe3o autorit\xe1ria de submeter 300 milh\xf5es de falantes a um capricho racionalista. ',
 u'O problema do acordo \xe9 termos tido v\xe1rios governos que, reverentes e analfabetos, foram ratificando, modificando e legislando como se o acordo fosse mesmo para levar a s\xe9rio. Se Marcelo ajudar a acabar com esta farsa, a sua Presid\xeancia j\xe1 ter\xe1 valido a pena.']
对于我审理过的第二个案件:

response.xpath('//*[@class="mioloNoticia"]/article/p/text()').extract()
这将导致更好的提取:

[u'Os c\xe1lculos na ves\xedcula, os sintomas de um reumatismo que o atacava quando o Outono se aproximava ou a certeza de que o fim das coisas era inevit\xe1vel abriam-lhe a porta ao pessimismo em geral e \xe0 descren\xe7a no futuro \u2013 mas a vis\xe3o de um mundo encavalitado \xe0s costas do "progresso" era o aspecto mais penoso da exist\xeancia. A esta dist\xe2ncia, compreendo-o; ser "contra o progresso" \xe9 nos nossos dias um pecado capital, e resmungar contra "a criatividade" tornou-se uma apostasia definitiva e dram\xe1tica.',
 u'O "ser humano" est\xe1 condenado a acreditar na criatividade sem limites, na originalidade, no progresso, na mudan\xe7a e, finalmente, na ideia de que as coisas novas s\xe3o sempre superiores \xe0s antigas. Isto pode fazer confus\xe3o a um velho do Alto Minho, educado pela vida (e pelos desaires) a apreciar as coisas que permanecem e a desconfiar das inven\xe7\xf5es em que n\xe3o v\xea grande utilidade.',
 u'A minha sobrinha Maria Lu\xedsa \u2013 a eleitora esquerdista da fam\xedlia \u2013 j\xe1 foi uma sacerdotisa do Progresso (com mai\xfascula). Hoje, desconfia bastante da direc\xe7\xe3o que as coisas tomam, e o seu optimismo em rela\xe7\xe3o \xe0 esp\xe9cie humana \xe9 morigerado. Alimento a esperan\xe7a, dissimulada por muita cautela e certo tom de ironia, de v\xea-la feliz como Dona Ester, minha m\xe3e, gostava de ver felizes os seus filhos, espalhados sobre o areal da praia de Afife, respirando o iodo da tarde e abrigando-se do vento galego que descia pelo litoral. Os sucessos e insucessos dos \xfaltimos setenta anos ensinaram-me a desejar pouco, a aceitar a grandeza das coisas desconhecidas, a reler os livros que j\xe1 foram belos algum dia, a manter alguma f\xe9 numa ordem que comanda os planetas ou a solid\xe3o das dunas de Moledo. Ao mesmo tempo, esse ego\xedsmo n\xe3o faz mal aos outros. N\xe3o exige muito deles. N\xe3o lhes oferece demasiadas desilus\xf5es, nem utopias, nem promessas v\xe3s de um mundo perfeito. N\xe3o lhes alimenta a f\xe9 nas coisas imposs\xedveis que exigem que os outros mudem para que n\xf3s possamos satisfazer os desejos pessoais.',
 u'Esse mundo perfeito existe, sim \u2013 mas terminou h\xe1 muito, antes do progresso, da democracia e dos d\xe9fices da economia. Tamb\xe9m \xe9 preciso lembrar que n\xe3o se pode voltar atr\xe1s nem \xe9 poss\xedvel recuperar o tempo perdido. O que est\xe1 perdido, est\xe1 perdido. O que passou, passou h\xe1 muito.']

但是我想要的是一个XPath,它可以表示两种情况。

如果不同文章之间的唯一区别是纯文本或标记中的文本,那么XPath非常简单

//article/text() | //article/p/text()

这将同时提取两者,无论其中一个是否存在

@Rafaelalmeda,请检查我的编辑。谢谢你能提供一个链接让我测试一下吗?是的。这来自第一个示例:和第二个示例:
//article/text() | //article/p/text()