【发布时间】:2018-11-26 16:36:44
【问题描述】:
我正在尝试使用 Selenium 从 Google 航班网站上取消航班的价格,但该元素不会显示在任何地方,即使在抓取整个页面时也不显示。我读过这可能是因为它位于不同的框架中,但我怎么知道它在哪个框架中。
这里是网站:https://www.google.es/flights?lite=0#flt=/m/0h3tv./m/05qtj.2018-12-14;c:EUR;e:1;a:FR;sd:1;t:f;tt:o
我要找的价格是:32 欧元
这是我的代码:
from bs4 import BeautifulSoup as soup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
d = webdriver.Chrome('/Users/davidgarciaballester/Desktop/chromedriver', options=chrome_options)
url='https://www.google.es/flights?lite=0#flt=/m/0h3tv./m/05qtj.2018-12-14;c:EUR;e:1;a:FR;sd:1;t:f;tt:o'
d.get(url)
precios = soup(d.page_source, 'html.parser').findAll('jsl',{'jstcache':'9322'})
print(precios)
d.quit();
我错过了什么吗?提前致谢。
编辑 1:jstcache 将值更改为 9322
【问题讨论】:
-
你得到了什么?
-
无数据,列表为空。
-
你确定是 precios = soup(d.page_source, 'html.parser').findAll('jsl',{'jstcache':'9383'}) 吗?我将其视为 9322
-
你说得对,自从我上次看到它之后,这个数字就变了。不过没关系,即使刮掉整个页面,我也看不到数字。
-
这个数字很可能是动态生成的,这意味着它不是检索元素的可靠方法。您需要元素的常量属性,每次页面加载时都可以引用该属性。
标签: python html python-3.x selenium web-scraping