试图帮助为非营利组织工作的人。目前正试图从STL县议会/委员会网站(https://boards.stlouisco.com/)获取信息
出现问题的原因如下:
我打算尝试使用BeautifulSoup,但在您从上面的下拉栏中选择一个董事会/委员会之前,实际数据甚至不会显示,因此我已切换到Selenium,这是我的新手
这项任务可能吗?当我查看站点的html代码时,我看到信息并没有存储在页面中,而是从另一个位置提取出来,并根据从下拉菜单中选择的选项显示在站点上
function ShowMemberList(selectedBoard) {
ClearMeetingsAndMembers();
var htmlString = "";
var boardsList = [{"id":407,"name":"Aging Ahead","isActive":true,"description":"... ...1.","totalSeats":14}];
var totalMembers = boardsList[$("select[name='BoardsList'] option:selected").index() - 1].totalSeats;
$.get("/api/boards/" + selectedBoard + "/members", function (data) {
if (data.length > 0) {
htmlString += "<table id=\"MemberTable\" class=\"table table-hover\">";
htmlString += "<thead><th>Member Name</th><th>Title</th><th>Position</th><th>Expiration Date</th></thead><tbody>";
for (var i = 0; i < totalMembers; i++) {
if (i < data.length) {
htmlString += "<tr><td>" + FormatString(data[i].firstName) + " " + FormatString(data[i].lastName) + "</td><td>" + FormatString(data[i].title) + "</td><td>" + FormatString(data[i].position) + "</td><td>" + FormatString(data[i].expirationDate) + "</td></tr>";
} else {
htmlString += "<tr><td colspan=\"4\">---Vacant Seat---</td></tr>"
}
}
htmlString += "</tbody></table>";
} else {
htmlString = "<span id=\"MemberTable\">There was no data found for this board.</span>";
}
$("#Results").append(htmlString);
});
}
到目前为止,我有这个(不是很多),它进入页面并从列表中选择每个板:
driver = webdriver.Chrome()
driver.get("https://boards.stlouisco.com/")
select = Select(wait(driver, 10).until(EC.presence_of_element_located((By.ID, 'BoardsList'))))
options = select.options
for board in options:
select.select_by_visible_text(board.text)
从这里,我希望能够从MemberTable中获取信息,但我不知道如何前进/这是否在我的能力范围内,或者甚至硒是否有可能
我曾尝试通过几个不同的元素使用find_来单击members表,但遇到了错误。我还尝试在选择后调用memberstable,但它找不到该元素。任何提示/指示/建议都将不胜感激
要从html-select下拉列表中选择每个板/委员会,并刮取页面,您必须为
element_to_be_clickable()
诱导WebDriverWait,您可以使用以下Locator Strategies:代码:
控制台输出:
参考资料
您可以在以下内容中找到一些相关讨论:
您可以使用此脚本将所有板中的所有成员保存到csv:
印刷品:
并将
data.csv
与所有董事会/成员一起保存(LibreOffice的屏幕截图):相关问题 更多 >
编程相关推荐