【问题标题】:extracting data using lxml and request and xpath in Python from a website在 Python 中使用 lxml 和 request 和 xpath 从网站中提取数据
【发布时间】:2021-12-18 18:44:34
【问题描述】:

我正在尝试使用 lxml 和 Python 中的请求从网站中提取一些数据。 这是URL

这是我的代码:

from lxml import html
import requests

page = requests.get('https://www.google.com/finance/quote/HPQ:NYSE?comparison=NASDAQ%3AINTC%2CNASDAQ%3AAAPL%2CNASDAQ%3AAVGO%2CNASDAQ%3AQCOM')
tree = html.fromstring(page.content)
price = tree.xpath('//*[@id="yDmH0d"]/c-wiz/div/div[4]/div/div/main/div[2]/c-wiz/div/div[5]/div/div/div/div[1]/div[1]')

但是,当我查看price 时,它是空的。 我做错了什么?

更新 我正在寻找的价格是比较部分中一些股票的价格。这是我的意思的屏幕截图:

【问题讨论】:

    标签: python web-scraping xpath python-requests lxml


    【解决方案1】:

    这个页面使用了大量的javascript来生成html内容。

    但是,如果您禁用 javascript 或仅检查 web-inspector 中出现的第一个文档(有关详细信息,请参阅我的 blog entry here),您可以看到一种访问价格的简单方法:

    这可以通过 xpath //*/@data-last-price 来实现:

    from lxml import html
    import requests
    
    page = requests.get('https://www.google.com/finance/quote/HPQ:NYSE?comparison=NASDAQ%3AINTC%2CNASDAQ%3AAAPL%2CNASDAQ%3AAVGO%2CNASDAQ%3AQCOM')
    tree = html.fromstring(page.content)
    price = tree.xpath('//*/@data-last-price')
    

    不幸的是,这是一个非常复杂的网络应用程序。对于比较数据,我建议您改为提出额外请求。

    【讨论】:

    • 感谢您的回答。如果您在我发布该页面链接的页面上稍微往下看,您可以看到惠普、英特尔、苹果等股票的价格。我怎样才能得到这些价格?
    • 我用我正在寻找的屏幕截图更新了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多