3 回答

TA贡献1921条经验 获得超9个赞
看起来javascript需要运行所以使用像selenium这样的方法
from selenium import webdriver
url = 'https://www.google.com/flights?hl=it#flt=/m/07_pf./m/05qtj.2019-04-27;c:EUR;e:1;sd:1;t:f;tt:o'
driver = webdriver.Chrome()
driver.get(url)
print(driver.find_element_by_css_selector('.gws-flights-results__cheapest-price').text)
driver.quit()

TA贡献1853条经验 获得超18个赞
您正在学习网络抓取真是太好了!您之所以获得 NoneType 结果是因为您正在抓取的网站动态加载内容。当请求库获取 url 时,它只包含 javascript。带有此类“gws-flights-results__itinerary-price”的 div 尚未呈现!因此,您用来抓取该网站的抓取方法是不可能的。
但是,您可以使用其他方法,例如使用 selenium 或 splash 等工具获取页面来呈现 javascript,然后解析内容。

TA贡献1982条经验 获得超2个赞
BeautifulSoup 是提取部分 HTML 或 XML 的绝佳工具,但在这里看起来您只需要获取另一个 JSON 对象的 GET 请求的 url。
(我现在不在电脑旁,明天可以更新一个例子。)
添加回答
举报