n番目の子に関するpyquery(n)が指定されていない要素の選択

HTMLサンプルコード

html = "<div class="update_details">
			<a href="xxxx">2019</a>
			<br>  //注意这里有两个br标签
			<br>
			<a href="xxxx">2020</a>
		</div>"

私たちは、第二を選択したいa标签中的内容2020、あなたがそうすることができます

from pyquery.pyquery import PyQuery as pq
doc = pq(html)
second_a = doc(".update_details a:nth-child(2)").text()

結果は、あなたが取ることは何もないです。
なぜ?あなたは順序はこのだと思うので。

  1. まず外観所有a标签
  2. 第二の削除a标签

オーダーの事実はこれです:

  1. すべての検索class="update_details"サブ要素を
  2. 削除する第二个サブ要素を
  3. 判断2番目の子要素は、あなたの子要素には、いない場合にも、それがテキストを取得していないことを文句を言わないことを与えられていません

正常に動作させます

n的值应该是4

from pyquery.pyquery import PyQuery as pq
doc = pq(html)
second_a = doc(".update_details a:nth-child(4)").text()

nth-child(n)ピットがあり、以下を参照してください

html = '<div class="update_details">
			<a href="xxxx">2019</a>
			<br>
			<br>
			<a href="xxxx">2020</a>
			<div class="inner">
				<a href="xxxx">2018</a>
				<a href="xxxx">2018</a>
				<a href="xxxx">2018</a>
				<a href="xxxx">2018</a>
			</div>
		</div>'

これを含有する内側層があればa标签、また、位置4に、以上の動作をします取出两个值出てきます。
あなただけの内部を削除したい場合はa标签的值、外部および削除すると、それを行う方法?次のステップ:

  1. 内部の最初の値を削除します
  2. 内部ラベルを削除します。
  3. そして、外側のラベルの内容を削除
inner_a = doc(".inner a:nth-child(4)").text() #取内部值
doc(".update_details").remove(".inner").find("a:nth-child(4)").text() #移除内部标签,再取出外部a标签的值
公開された141元の記事 ウォンの賞賛131 ビュー210 000 +

おすすめ

転載: blog.csdn.net/qq_41621362/article/details/104936140