如何从网页中提取表格

时间:2018-05-23 07:53:44

标签: python html python-3.x beautifulsoup python-requests

我一直试图从网页中提取表格 我不知道接下来要做什么就是我写的。

import requests
from bs4 import BeautifulSoup
page= requests.get('http://www.moneycontrol.com/financials/nmdc/ratios/NMD02')
soup = BeautifulSoup(page.text, 'html.parser')
table = soup.find(class_='tabns MR10')

现在我不知道该怎么办。我找不到桌子。

2 个答案:

答案 0 :(得分:0)

您可以轻松使用pyquery

import requests
from pyquery import PyQuery as pq
page = requests.get('http://www.moneycontrol.com/financials/nmdc/ratios/NMD02')
html = pq(page.content)
rows = html(".table4:last tr")
for tr in rows:
    # tr.find("td")
    # pq(tr)("td")
    print tr

答案 1 :(得分:0)

类标签和MR10不会引用您尝试获取的页面上的表格。该类组合指的是包含无序列表的div,该列表列出了表顶部的选项卡。类.det看起来会得到你的桌子,但不知道你想要抓什么我不能确定。

试试这个:

retry:

这是我从该代码中得到的:

#! /usr/bin/env python3
import requests
from bs4 import BeautifulSoup
page= requests.get('http://www.moneycontrol.com/financials/nmdc/ratios/NMD02')
soup = BeautifulSoup(page.text, 'html.parser')
table = soup.findAll(class_='det')

for node in table:
    if 'colspan' in node.attrs:
        if len(node.contents) == 1:
            print('')
            print(node.contents[0].ljust(48), end="")

    elif len(node.contents) == 1:
        print(node.contents[0].ljust(10), end="")