【问题标题】:Copy a table from a website using selenium and flask使用 selenium 和烧瓶从网站复制表格
【发布时间】:2016-12-04 11:44:23
【问题描述】:

对于我当地的体育俱乐部网站,最好从官方联赛网站复制和同步排名和结果。我正在为 python 3.5 使用烧瓶和硒。

到目前为止,我正在使用

driver.find_element_by_class_name("table")

定位表格。有没有一种有效的方法来存储它并一次将它传递给 jinja 模板?还是我必须分别存储和处理表的所有不同部分(标题、行、元素)?

【问题讨论】:

  • 考虑使用 BeautifulSoup

标签: python selenium flask jinja2


【解决方案1】:

由于您在 <table> 中拥有信息,您应该只根据 <tr><td>(可能还有 <th>)提取信息并将其存储在 CSV 或其他结构化文件(YAML、JSON ) 并从那里获取 jinja 模板的数据。

如果您仅在数据更改时更新文件,这是更有效的方法之一,您可以检查例如如果输入(官方排名表)发生变化,则每小时一次。

当联赛数据更改为使用时,这种解耦也很重要,例如<div><span> 并且您的输入处理需要进行调整。

@Will 建议使用 BeautifulSoup 是一个很好的建议,特别是如果要处理的数据很大,从 selenium 中一次性检索 HTML 并由 BeautifulSoup 处理要快得多。如果您不愿意花时间研究使用完整的 CSS(不仅仅是类)来选择 selenium(使用 .find_element_by_css_selector())中最容易转换为 BeautifulSoup(使用 .select())的元素,一旦你将进行过渡。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2021-08-28
    • 1970-01-01
    相关资源
    最近更新 更多