【问题标题】:How to parse information from aviasales.com如何解析来自aviasales.com 的信息
【发布时间】:2023-04-03 02:10:01
【问题描述】:

我想从机票聚合器收集 10 个最优惠的价格 - http://www.aviasales.com

例如,我们将找到 8 月 6 日莫斯科-巴塞罗那航班的 10 个最便宜的价格。具体的 URL 是http://www.aviasales.com/flights/MOW0608BCN1。 如您所知,任何聚合器都会花费几秒钟的时间进行搜索,然后显示最便宜的报价。因此,问题在于我可以在页面开始加载的初始点抓取的数据没有所需的信息。它仅在页面开始下载后 30 秒出现。

根据我的观点,解决问题的最简单方法是某种计时器。但是我的代码中的 scraper 再次从零开始打开页面。因此,收集没有价格的数据。在这种情况下我该怎么办?

我在下面附上我的代码(第一最优惠的价格):

import requests, bs4
import time
import webbrowser
webbrowser.open('http://www.aviasales.com/flights/MOW0608BCN1')
time.sleep(30)
url=requests.get('http://www.aviasales.com/flights/MOW0608BCN1')
b=bs4.BeautifulSoup(url.text, "html.parser")
price_string=b.select('currency_font currency_font-usd')
price=price_string[0].getText()
print(price)

所需数据编号: https://www.photobox.co.uk/my/photo?album_id=5263636965&photo_id=500604214523

【问题讨论】:

    标签: python web-scraping


    【解决方案1】:

    从长远来看,解析网站并不是一个可靠的解决方案,例如下一版本可能会更改页面的 HTML 标记。

    您可以使用 API (http://www.aviasales.ru/API) 获取所需信息。

    如果你出于某种原因想要实现解析。我建议查看 Selenium 和 PhantomJS(或其他无头浏览器)。等待命令 (http://selenium-python.readthedocs.io/waits.html) 将帮助您检测页面上是否存在 CSS 类。

    【讨论】:

      猜你喜欢
      • 2012-04-20
      • 2016-07-23
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2016-12-04
      • 1970-01-01
      • 2019-03-01
      • 1970-01-01
      相关资源
      最近更新 更多