Vex*_*exx 11 lxml class python-3.x
我到处搜索,我发现的最多的是doc.xpath('// element [@ class ="classname"]'),但无论我尝试什么,这都行不通.
我正在使用的代码
import lxml.html
def check():
data = urlopen('url').read();
return str(data);
doc = lxml.html.document_fromstring(check())
el = doc.xpath("//div[@class='test']")
print(el)
Run Code Online (Sandbox Code Playgroud)
它只是打印一个空列表.
编辑:有多奇怪.我使用谷歌作为测试页面,它在那里工作正常,但它不能在我使用的页面上工作(youtube)
这是我正在使用的确切代码.
import lxml.html
from urllib.request import urlopen
import sys
def check():
data = urlopen('http://www.youtube.com/user/TopGear').read(); #TopGear as a test
return data.decode('utf-8', 'ignore');
doc = lxml.html.document_fromstring(check())
el = doc.xpath("//div[@class='channel']")
print(el)
Run Code Online (Sandbox Code Playgroud)
mzj*_*zjn 24
您用于测试的TopGear页面没有任何<div class="channel">元素.但这有效(例如):
el = doc.xpath("//div[@class='channel-title-container']")
Run Code Online (Sandbox Code Playgroud)
或这个:
el = doc.xpath("//div[@class='a yb xr']")
Run Code Online (Sandbox Code Playgroud)
要查找<div>具有包含该字符串的class属性的元素,您可以使用channel
el = doc.xpath("//div[contains(@class, 'channel')]")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26797 次 |
| 最近记录: |