我正在尝试使用python脚本提取有关机票价格的信息。请看一下图片:
我想解析所有价格(例如树底部的“ 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
下的直接子代。有人可以让我知道如何正确解析这棵树吗?
我没有进行网页抓取的经验,但是碰巧这是我正在构建的更大工作流程中的一步。
答案 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