[英]How to use the xpath to parse the director part from the html with python 3
[英]python3 to parse html part with xpath
我只想從以下帶有路徑xpath的html中提取div部分html部分。 我只是給這個鏈接html的一些部分:
<html>
<head>
<meta charset="utf-8">
<title>Items 1 to 20 -- Example Page 1</title>
<script type="text/javascript">
var _gaq = _gaq || [];
_ gaq.push(['_setAccount', 'UA-23648880-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setDomainName', 'econpy.org']);
</script>
</head>
<body>
<div align="center">1, <a
href="http://econpy.pythonanywhere.com/ex/002.html">[<font
color="green">2</font>]</a>, <a
href="http://econpy.pythonanywhere.com/ex/003.html">[<font
color="green">3</font>]</a>, <a
href="http://econpy.pythonanywhere.com/ex/004.html">[<font
color="green">4</font>]</a>, <a
href="http://econpy.pythonanywhere.com/ex/005.html">[<font
color="green">5</font>]</a></div>
#I just want to get this part html.
<div class ="item-body"
<div title="item1">
<div title="buyer-name">Carson Busses</div>
<span class="item-price">$29.95</span><br>
</div>
</div
.......
<div title="buyer-info">
<div title="buyer-name">Earl E. Byrd</div>
<span class="item-price">$8.37</span><br>
</div>
<div title="buyer-info">
<div title="buyer-name">Patty Cakes</div>
<span class="item-price">$15.26</span><br>
</div>
<div title="buyer-info">
<div title="buyer-name">Derri Anne Connecticut</div>
<span class="item-price">$19.25</span><br>
</div>
<div title="buyer-info">
<div title="buyer-name">Moe Dess</div>
<span class="item-price">$19.25</span><br>
</div>
<div title="buyer-info">
<div title="buyer-name">Leda Doggslife</div>
<span class="item-price">$13.99</span><br>
</div>
.........
.........
<div title="buyer-info">
<div title="buyer-name">Rose Tattoo</div>
<span class="item-price">$114.07</span><br>
</div>
<div title="buyer-info">
<div title="buyer-name">Moe Tell</div>
<span class="item-price">$10.09</span><br>
</div>
<script type="text/javascript"> (function() {
var ga = document.createElement('script'); ga.type =
'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl'
: 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
我只想在這個html鏈接中提取以下部分的html。
<div class ="item-body"
<div title="item1">
<div title="buyer-name">Carson Busses</div>
<span class="item-price">$29.95</span><br>
</div>
</div
我的代碼是:
from lxml import html
from lxml import etree
import requests
page = requests.get('001.html')
tree = html.fromstring(page.content)
buy_info2 = tree.xpath('//div[contains(@title, "item-body")]')
print("buy-info2: ", buy_info2)
我希望它得到HTML列表,但結果是[],請給你幫助我,請使用xpath而不是其他方法。 謝謝!
我已經解決了這個問題,只需使用下面的代碼,在我的代碼中添加// *,它有效:
buy_info2 = tree.xpath('//div[contains(@title, "item-body")]//*')
那么我可以得到我想要的所有html元素。 謝謝!
您可以使用類名來拉取div:
In [2]: from lxml import html
In [3]: xml = html.fromstring(h)
In [4]: div = xml.xpath("//div[@class='item-body']")[0]
In [5]: print(html.tostring(div))
<div class="item-body" title="item1">
<div title="buyer-name">Carson Busses</div>
<span class="item-price">$29.95</span><br>
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.