【问题标题】:parse html content by passing custom date input通过传递自定义日期输入来解析 html 内容
【发布时间】:2017-07-20 23:49:49
【问题描述】:

我正在解析来自here 的数据。在网页上,我可以通过选择所需的日期来获取例如昨天的数据。我如何解析以获得相同的数据(即昨天)?例如,传递自定义日期以获取该日期的数据。

【问题讨论】:

    标签: python parsing web-scraping python-requests lxml


    【解决方案1】:

    您可以使用 Selenium 或使用网站的 ajax api。
    这是后者的一个例子:

    def get_by_date(date):
        url = 'https://markets.ft.com/data/world/ajax/getnextecoevents?startDate=' + date
        r = requests.get(url)
        return r.json()['html']
    

    date 格式应为 yyyy-mm-dd,例如:“2017-07-20”

    使用上面的函数和bs4来抓取表格内容:

    html = get_by_date('2017-06-20')
    soup = BeautifulSoup(html, 'html.parser')
    data = [[td.text for td in tr.find_all('td')] for tr in soup.find('table').find_all('tr')]
    

    【讨论】:

    • 感谢它似乎按所需日期解析。但是我如何从这里获取文本内容。通常,我使用 xpath,但在这种情况下,它似乎没有到达文本
    • 你为什么不使用bs4?如果您告诉我您要抓取哪些列,也许我可以提供帮助。
    • 我正在尝试从主表中抓取内容 [日期、描述、国家、影响、先前、4cast、实际]
    • 我更新了我的帖子,用bs4给你一个例子。
    猜你喜欢
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多