从xpath列表中删除元素时遇到问题
我是Python和HTML抓取的新手,所以忍受我:)
我已经读过nodes.getparent().remove(nodes)
应删除一个元素,但我甚至无法编译它。
所以看起来我没有得到我需要删除的元素类型
我可以毫无问题地致电nodes.getparent()
,但不能删除。
错误:
" TypeError:参数'元素'类型不正确(预期lxml.etree._Element,得到lxml.etree._ElementUnicodeResult)"
最好的问候 的Jesper
from lxml import html
import requests
headers = {'User-Agent': 'Fiddler', 'Host': 'bilmodel.dk'}
page = requests.get('https://bilmodel.dk/Sitemap/Biler', headers=headers)
tree = html.fromstring(page.content)
#This will create a list of car brands
CarBrands = tree.xpath('//*[@id="content"]/ul[1]//text()')
for nodes in CarBrands:
if nodes.find('\r\n\t\t\t\t') == 0:
print('Found it')
nodes.getparent().remove(nodes)
# Press Enter to exit window
#CarBrand = input('Write car brand:')
print(CarBrands)
答案 0 :(得分:0)
问题:我没有获得我需要删除的元素类型
要删除的元素是“特殊文本节点”,而不是删除,通过指定空白for (var i = 0, el = document.querySelectorAll(".myClickFunction")
; i < el.length; i++) {
el[i].dataset.index = i;
el[i].onclick = function(event) {
for (var n = 0, el_ = document.querySelectorAll("[id^=myDIV]")
; n < el_.length; n++) {
el_[n].style.display = "none"
}
document.querySelectorAll("[id^=myDIV]")[event.target.dataset.index]
.style.display = "block"
}
}
清除它。
例如:
<div id="myDIVA" style="display:none;">blabla 1</div>
<div id="myDIVB" style="display:none;">blabla 2</div>
<div id="myDIVC" style="display:none;">blabla 3</div>
and they are hidden and/or shown by clicking div's:
<div class="myClickFunction">Show only ONE</div>
<div class="myClickFunction">Show only TWO</div>
<div class="myClickFunction">Show only THREE</div>
输出:
''
使用Python测试:3.4.2