【发布时间】:2017-08-11 15:59:43
【问题描述】:
在python3中使用chrome和xpath,我尝试提取“href”属性on this web page的值。 “href”属性包含指向我感兴趣的电影预告片(法语为“bande-annonce”)的链接。
首先,使用 xpath,“a”标签似乎是“span”标签。事实上,使用这段代码:
response_main=urllib.request.urlopen("http://www.allocine.fr/film/fichefilm_gen_cfilm=231874.html")
htmlparser = etree.HTMLParser()
tree_main = etree.parse(response_main, htmlparser)
tree_main.xpath('//*[@id=\"content-start\"]/article/section[3]/div[2]/div/div/div/div[1]/*')
我得到这个结果:
[<Element span at 0x111f70c08>]
所以“div”标签不包含“a”标签,而只有一个“span”标签。我读过浏览器中的 html 可视化并不总是反映服务器发送的“真实”html。因此我尝试使用这个命令来提取href:
response_main=urllib.request.urlopen("http://www.allocine.fr/film/fichefilm_gen_cfilm=231874.html")
htmlparser = etree.HTMLParser()
tree_main = etree.parse(response_main, htmlparser)
tree_main.xpath('//*[@id=\"content-start\"]/article/section[3]/div[2]/div/div/div/div[1]/span/@href')
不幸的是,这没有返回任何内容...当我使用以下命令检查“span”标签中的属性时:
tree_main.xpath('//*[@id=\"content-start\"]/article/section[3]/div[2]/div/div/div/div[1]/span/@*')
我得到了“class”属性的值,但没有关于“href”的...:
['ACrL3ZACrpZGVvL3BsYXllcl9nZW5fY21lZGlhPTE5NTYwMDcyJmNmaWxtPTIzMTg3NC5odG1s meta-title-link']
我需要一些帮助来了解这里发生的事情。为什么“a”标签是“span”标签?对我来说最重要的问题是,如何提取“href”属性的值?
非常感谢您的帮助!
【问题讨论】:
标签: html python-3.x xpath web-scraping href