小编due*_*nni的帖子

lxml.html使用XPath和变量进行解析

我有这个HTML片段

<div id="dw__toc">
<h3 class="toggle">Table of Contents</h3>
<div>

<ul class="toc">
<li class="level1"><div class="li"><a href="#section">#</a></div>
<ul class="toc">
<li class="level2"><div class="li"><a href="#link1">One</a></div></li>
<li class="level2"><div class="li"><a href="#link2">Two</a></div></li>
<li class="level2"><div class="li"><a href="#link3">Three</a></div></li>
Run Code Online (Sandbox Code Playgroud)

现在我想用lxml.html解析它.最后我想要一个函数,我可以提供一个searchterm(即"one"),函数应该返回

One
#link1
Run Code Online (Sandbox Code Playgroud)

现在我想在XPath中获取一个变量.

作品:

import lxml.html
html = lxml.html.parse("www.myurl.com/slash/something")

test=html.xpath("//ul[@class='toc']/li[@class='level2']/div[@class='li']/a/text()='One'")

print test
Run Code Online (Sandbox Code Playgroud)

尝试变量.我想'One'用一个变量替换硬编码,我可以在以后返回该函数.

不起作用:

import lxml.html
html = lxml.html.parse("www.myurl.com/slash/something")

desiredvars = ['One']
myresultset=((var, html.xpath("//ul[@class='toc']/li[@class='level2']/div[@class='li']/a[text()='%s']"%(var))[0]) for var in desiredvars)

for each in myresultset: 
        print each

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, …
Run Code Online (Sandbox Code Playgroud)

html python parsing lxml web-scraping

6
推荐指数
1
解决办法
2万
查看次数

传单 - 模式在地图后面打开

我正在使用leafletmodalcss在地图中显示模态。这对leafletv0.7.7 很有用。看到这个Plunker:点击 --> 单击缩放控件下的按钮。

当我切换到leafletv1.2.0 时,模态被打开但在地图后面。看到这个Plunker:点击

为什么会这样?关于如何像旧版本一样在地图前显示模态的任何想法leaflet?谢谢!

javascript css jquery modal-dialog leaflet

3
推荐指数
1
解决办法
1566
查看次数

标签 统计

css ×1

html ×1

javascript ×1

jquery ×1

leaflet ×1

lxml ×1

modal-dialog ×1

parsing ×1

python ×1

web-scraping ×1