簡體   English   中英

Xpath:如何獲取<a>標簽</a>文本 <p> <a>標簽</a>

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

我正在嘗試使用scrapy來保存某些網站上的信息,但我發現了一個問題,但我不知道如何解決。

我試圖將所有文本都包含在p標簽內,但是我的問題是,在某些情況下,這些標簽內不僅只有文本,有時還有一些標簽,當到達該標簽時便停止收集文本。

這是我的Xpath表達式,在沒有標簽的地方它可以正常工作。

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

任何幫助,將不勝感激!

提前致謝!

張貼Pawel Miech的評論作為答案,因為到目前為止他的評論似乎已經幫助了我們許多人,並且包含了正確的答案:

在xpath的末尾添加//text() ,以指定應遞歸提取文本。

因此,您的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> 標簽 不在標簽內的文本的 XPath? 獲取里面的文字<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> 如何僅對ap標簽中的文本設置樣式 如何提取里面的文字<p>帶<small>標簽</small> 如何將帶有 span 標簽的特定文本包裹在<p>標簽</p> Xpath如何獲取標簽中的所有文本 獲取<a >標簽內</a>的文本<p><a >標簽</a> 如何獲得只有<p>標簽文本,包括<span>標簽</span></p> 如何訪問`<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>
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM