Python 2.7 Python xpath抓取有问题

Python 2.7 Python xpath抓取有问题,python-2.7,xpath,web-scraping,Python 2.7,Xpath,Web Scraping,我再次带着一个问题问这里的人们:) 我最近开始重新学习python(50%是在codcademy lol上完成的),并决定制作一个快速的脚本,用于web抓取CAD中黄金的现货价格。这将最终成为一个更大的脚本的一部分。。。但我非常生疏,认为这将是一个好项目 我的问题: 我一直在按照指南完成我的目标,但是我的脚本总是返回/打印 <Element html at 0xRANDOM> 我的研究: 1) www.w3schools.com/xsl/xpath\u syntax.asp 这就是

我再次带着一个问题问这里的人们:)

我最近开始重新学习python(50%是在codcademy lol上完成的),并决定制作一个快速的脚本,用于web抓取CAD中黄金的现货价格。这将最终成为一个更大的脚本的一部分。。。但我非常生疏,认为这将是一个好项目

我的问题: 我一直在按照指南完成我的目标,但是我的脚本总是返回/打印

<Element html at 0xRANDOM>
我的研究:

1) www.w3schools.com/xsl/xpath\u syntax.asp

这就是我使用“//span”查找所有“span”对象的地方,然后使用@id将其缩小到我需要的范围

(二)

这让我觉得我的tree.xpath设置很糟糕。然而,我似乎不知道在哪里,为什么

如蒙协助,将不胜感激

打印出来的是
lxml.html
元素
类字符串表示。如果要查看实际的HTML内容,请使用
tostring()

您还将得到
刮取的内容:[]
打印,这实际上意味着没有与定位器匹配的元素。而且,如果您看到之前打印出来的HTML,那么在下载的源代码中实际上没有包含
id=“gpotickerLeftCAD\u price”
的元素

通过定期发出连续的JSONP GET请求,动态检索此特定站点上的价格。您可以考虑模拟这些请求,也可以停留在更高的层次上,通过自动化浏览器。演示(使用):


切换到html.tostring会给我一个错误:类型“str”无法序列化。我不太清楚,我的代码在变量“tree”中有html.fromstring部分,当更改为“tostring”时会出现序列化错误。我不知道如何在我的代码中实现你的修复。我很抱歉,这是漫长的一天,我没有满负荷工作lol-也许硒对我来说是个更好的主意lol@L8NIT3TR0UBL3没关系,这是我正在执行的:。另外,用完整的故事更新了答案。绝对完美!我很抱歉这么密集lol,我可能会尝试两种方式,看看我最喜欢:)非常感谢:)只是一个快速的插件,如果需要下载PhantomJS来工作,我如何捆绑二进制文件或至少是库,以便我可以从最终更大的程序中生成一个可执行文件?
#!/bin/python
#Scrape current gold spot price in CAD

from lxml import html
import requests

def scraped_price():
    page = requests.get('http://goldprice.org/gold-price-canada.html')
    tree = html.fromstring(page.content)

    print "The full page is: ", tree #added for debug WHERE ERROR OCCURS
    bid = tree.xpath("//span[@id='gpotickerLeftCAD_price']/text()")
    print "Scraped content: ", bid
    return bid
gold_scraper = scraped_price()
print(html.tostring(tree, pretty_print=True))
>>> import time
>>> from selenium import webdriver
>>> 
>>> driver = webdriver.PhantomJS()
>>> driver.get("http://goldprice.org/gold-price-canada.html")
>>> while True:
...     print(driver.find_element_by_id("gpotickerLeftCAD_price").text)
...     time.sleep(1)
... 
1,595.28
1,595.28
1,595.28
1,595.28
1,595.28
1,595.19
...