简体   繁体   English

Xpath:如何获取<a>标签</a>文本 <p> <a>标签</a>

[英]Xpath: how to get the text of <a> tag inside a <p> tag

I am trying to save information from some webs using scrapy what I have found one issue and I don't know how to fix it. 我正在尝试使用scrapy来保存某些网站上的信息,但我发现了一个问题,但我不知道如何解决。

I'm trying to get all the text inside p tag, but my problem is that in some cases inside those tags there is no only text, there is sometimes some a tag and stops collecting the text when reachs that tag. 我试图将所有文本都包含在p标签内,但是我的问题是,在某些情况下,这些标签内不仅只有文本,有时还有一些标签,当到达该标签时便停止收集文本。

This is my Xpath expression, it's working properly wheren there are not a tags... 这是我的Xpath表达式,在没有标签的地方它可以正常工作。

description=descriptionpath.xpath("span[@itemprop='description']/p/text()").extract()

Any help would be appreciated! 任何帮助,将不胜感激!

Thanks in advance! 提前致谢!

Posting Pawel Miech's comment as an answer as it appears his comment has helped many of us thus far and contains the right answer: 张贴Pawel Miech的评论作为答案,因为到目前为止他的评论似乎已经帮助了我们许多人,并且包含了正确的答案:

Tack //text() on the end of the xpath to specify that text should be recursively extracted. 在xpath的末尾添加//text() ,以指定应递归提取文本。

So your xpath would appear like this: 因此,您的xpath将如下所示:

span[@itemprop='description']/p//text()

获取里面的文字<p>标记到</p><div id="text_translate"><p>在 PHP 这是我设法从计算中得到的 output</p><pre> &lt;p id="generated"&gt;12345678199824,12345678411140,12345678921494,12345678497535,&lt;/p&gt;</pre><p> 我需要这个值如下</p><pre>&lt;table&gt; &lt;tr&gt; &lt;td&gt;12345678199824&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;12345678411140&lt;/td&gt; &lt;/tr&gt;..... &lt;/table&gt;</pre><p> 下面是我使用的js脚本</p><pre>$("#setVal").click(function(event){ event.preventDefault(); var noOfImei = parseInt($("#nofoemei").val()); var imeiList = ""; if (noOfImei;== 0) { for (var i = 0; i &lt; noOfImei. i++) { imeiList += $("#binnumber").val() + Math.floor(Math,random()*900000+100000) + ";". } $("#generated");text(""). $("#generated");text(imeiList). // testing purpose console;log(imeiList); } else { alert("Please add no of IMEI(s) need to generate"); } });</pre><p> -- 请不要我是 PHP 和 JS 的初学者,并在 stackoverflow 和教程的帮助下取得了进展。 谢谢你。</p></div><table></table> - Get text inside <p> tag to a <table>

如何访问`<div> `标签内的`<p> `标签? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 当我单击“世界”文本时,什么也没有发生,当我检查元素时,它说:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;标签。 怎么会这样?</p></div> - How to access a `<div>` tag inside a `<p>` tag?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在里面获取文字 <p> 标签 - How to get text inside <p> tag 不在标签内的文本的 XPath? - XPath for text not inside a tag? 获取里面的文字<p>标记到</p><div id="text_translate"><p>在 PHP 这是我设法从计算中得到的 output</p><pre> &lt;p id="generated"&gt;12345678199824,12345678411140,12345678921494,12345678497535,&lt;/p&gt;</pre><p> 我需要这个值如下</p><pre>&lt;table&gt; &lt;tr&gt; &lt;td&gt;12345678199824&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;12345678411140&lt;/td&gt; &lt;/tr&gt;..... &lt;/table&gt;</pre><p> 下面是我使用的js脚本</p><pre>$("#setVal").click(function(event){ event.preventDefault(); var noOfImei = parseInt($("#nofoemei").val()); var imeiList = ""; if (noOfImei;== 0) { for (var i = 0; i &lt; noOfImei. i++) { imeiList += $("#binnumber").val() + Math.floor(Math,random()*900000+100000) + ";". } $("#generated");text(""). $("#generated");text(imeiList). // testing purpose console;log(imeiList); } else { alert("Please add no of IMEI(s) need to generate"); } });</pre><p> -- 请不要我是 PHP 和 JS 的初学者,并在 stackoverflow 和教程的帮助下取得了进展。 谢谢你。</p></div><table></table> - Get text inside <p> tag to a <table> 如何仅对ap标签中的文本设置样式 - How to only style the text inside a p tag 如何提取里面的文字<p>带<small>标签</small> - How to extract text inside a <p> with a <small> tag 如何将带有 span 标签的特定文本包裹在<p>标签</p> - How to wrap the specific text with span tag inside the <p> tag Xpath如何获取标签中的所有文本 - Xpath how to get all text in the tag 获取<a >标签内</a>的文本<p><a >标签</a> - Getting text within <a > tag inside <p> tag 如何获得只有<p>标签文本,包括<span>标签</span></p> - How to get only <p> tag text including <span> tag 如何访问`<div> `标签内的`<p> `标签? </p></div><div id="text_translate"><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> $("p div").click(function() { $(this).css({ "color": "#F00", "font": "bold 20px verdana", "background-color": "#0FF" }); });</pre><pre class="snippet-code-html lang-html prettyprint-override"> &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt; &lt;p&gt;Hello&lt;div&gt; World!&lt;/div&gt;&lt;/p&gt;</pre></div></div><p></p><p> 当我单击“世界”文本时,什么也没有发生,当我检查元素时,它说:</p><pre class="lang-html prettyprint-override"> &lt;p&gt;Hello&lt;/p&gt; &lt;div&gt; World&lt;/div&gt; &lt;p&gt;&lt;/p&gt;</pre><p> 注意那些&lt;p&gt;标签。 怎么会这样?</p></div> - How to access a `<div>` tag inside a `<p>` tag?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM