Python报废机票网站

时间:2019-08-12 21:43:05

标签: python python-3.x web-scraping beautifulsoup urllib3

我正在尝试使用python脚本提取有关机票价格的信息。请看一下图片:

Inspect element

我想解析所有价格(例如树底部的“ 121”)。我构建了一个简单的脚本,但我的问题是我不确定如何从页面“检查元素”后面的代码中获取正确的部分。我的代码如下:

import urllib3
from bs4 import BeautifulSoup as BS

http = urllib3.PoolManager()


ULR = "https://greatescape.co/?datesType=oneway&dateRangeType=exact&departDate=2019-08-19&origin=EAP&originType=city&continent=europe&flightType=3&city=WAW"
response = http.request('GET', URL)
soup = BS(response.data, "html.parser")

body = soup.find('body')
__next = body.find('div', {'id':'__next'})
ui_container = __next.find('div', {'class':'ui-container'})
bottom_container_root = ui_container.find('div', {'class':'bottom-container-root'})

print(bottom_container_root)

问题是我被困在ui-container级别。 bottom-container-root是一个空变量,尽管它是ui-container下的直接子代。有人可以让我知道如何正确解析这棵树吗?

我没有进行网页抓取的经验,但是碰巧这是我正在构建的更大工作流程中的一步。

1 个答案:

答案 0 :(得分:0)

let targets = document.querySelectorAll("li"); targets.forEach(function(target) { target.addEventListener("click", function() { let subMenu = target.querySelector("ul"); let isOpen = subMenu.classList.contains('show'); if (!isOpen) { subMenu.classList.add("show"); } else { subMenu.classList.remove("show"); } }); }); .find_next_siblings在浏览容器时很有用。

这是下面的一些示例用法。

.next_element