我正在尝试从以下网站抓取数据:
http://mozo.com.au/credit-cards/search#fetch/680
使用 Chrome 的“检查元素功能”,我已经能够找到我想要的元素地址:
//*[@id="p-40"]/div[4]/table/tbody/tr/td[1]/text()
我希望使用这段代码,我能够得到文本“9.99%”
import requests
page = requests.get('http://mozo.com.au/credit-cards/search#fetch/680')
tree = html.fromstring(page.text)
tree.xpath('//*[@id="p-40"]/div[4]/table/tbody/tr/td[1]/text()')
但是,输出是一个空数组。我哪里出错了?
最佳答案
喜欢tobifasc也就是说,页面是动态加载的。例如尝试使用 Selenium ,
首次安装:
pip3 install selenium
然后:
import lxml.html
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(url)
tree = lxml.html.fromstring(driver.page_source)
现在您可以查询:
# With your xpath there are 2 results...
results = tree.xpath('//*[@id="p-40"]/div[4]/table/tbody/tr/td[1]/text()')
results[1].strip()
'9.99%'
关于python - 使用 python 和 xpath 进行抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31940525/