【发布时间】:2019-05-30 08:27:01
【问题描述】:
我正在尝试用 Python 编写一个程序,该程序可以获取股票名称及其价格并打印出来。但是,当我运行它时,没有打印任何内容。从网站获取数据似乎有问题。我仔细检查了网页的路径是否正确,但由于某种原因,文本不想显示。
from lxml import html
import requests
page = requests.get('https://www.bloomberg.com/quote/UKX:IND?in_source=topQuotes')
tree = html.fromstring(page.content)
Prices = tree.xpath('//span[@class="priceText__1853e8a5"]/text()')
print ('Prices:' , Prices)
here is the website I am trying to get the data from
我试过 BeautifulSoup,但也有同样的问题。
【问题讨论】:
-
嗨,Adam,网站可能有动态 html,在这种情况下,您必须使用
selenium。 -
检查
page返回的内容,但看起来@JuanC 是正确的,requests返回来自服务器的响应,要求您选中一个框以确认您不是机器人 -
Bloomberg 不希望您抓取该网站,因为他们想强迫人们使用他们的api。如前所述,您可以使用像 Selenium 这样的浏览器自动化来通过浏览器而不是 Web 请求访问站点元素
-
如果您知道如何使用 Chrome 检查工具,您可以直接使用浏览器中的克隆标头定位 AJAX api。
-
是的,我正在阅读硒。如果我将来需要它,我会为自己保留它的书签。谢谢大家的帮助
标签: python html web-scraping python-requests lxml