2016-06-07 2 views
0

Я просто хочу извлечь часть html div part из следующего html с помощью пути xpath. я просто дать какую-то часть этой ссылке HTML:python3 для разбора части html с xpath

<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 не другой метод. Благодаря!

+0

Может быть ваше решение здесь (http://stackoverflow.com/questions/11465555/can-we- use-xpath-with-beautifulsoup) попробуйте это. –

+0

Я просто хочу использовать метод xpath – tktktk0711

ответ

0

Я решил эту проблему, просто используйте следующий код, добавьте // * в моем коде, это работает:

buy_info2 = tree.xpath('//div[contains(@title, "item-body")]//*') 

, то я могу получить все HTML элемент, который я хочу. Спасибо!

0

Вы можете вытащить DIV, используя имя класса: [? Использование XPath с BeautifulSoup]

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> 
+0

Спасибо за ваш ответ. – tktktk0711

Смежные вопросы