Python 如何使用BeautifulSoup和Pandas以结构化格式从该网站捕获表格?

Python 如何使用BeautifulSoup和Pandas以结构化格式从该网站捕获表格?,python,pandas,dataframe,beautifulsoup,python-requests,Python,Pandas,Dataframe,Beautifulsoup,Python Requests,我想从这个网站“”中抓取表格,因为它每小时都在更新,所以我也想跟踪更改。我尝试使用selenium来抓取数据,但数据都在一列中,没有任何表格。如何使用pandas和Beautiful Soup以结构化格式刮表并跟踪更改。这就是我想弄明白的代码 import pandas as pd from bs4 import BeautifulSoup soup = BeautifulSoup(html, "html.parser") table = soup.find('table',

我想从这个网站“”中抓取表格,因为它每小时都在更新,所以我也想跟踪更改。我尝试使用selenium来抓取数据,但数据都在一列中,没有任何表格。如何使用pandas和Beautiful Soup以结构化格式刮表并跟踪更改。这就是我想弄明白的代码

import pandas as pd
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
table = soup.find('table', attrs={'id':'subs noBorders evenRows'})
table_rows = table.find_all('tr')

res = []
for tr in table_rows:
    td = tr.find_all('td')
    row = [tr.text.strip() for tr in td if tr.text.strip()]
    if row:
        res.append(row)


df = pd.DataFrame(res, columns=["Notice No","Subject","Segment Name","Category Name","Department","PDF"])
print(df)

如果您能帮助我获取数据以及如何在我再次运行脚本时跟踪新数据,那将是一个帮助。

请注意,您不需要将
params
作为主页中显示的所需信息。我把它留给你了,以防你刮掉不同的
id

另请注意,我跳过了
PDF
,因为它将显示
NAN
值,因为
PDF
链接不是
hyperlink
。它是一个存储在服务器中的jsut
logo
图标。但是一旦你点击了
pdf
logo,它就会向目标用户发出下载文件的post请求。基于此,您没有提供明确的信息,所以这里有一个关于您需求的答案

导入请求
作为pd进口熊猫
标题={
“用户代理”:“Mozilla/5.0(Windows NT 10.0;Win64;x64;rv:80.0)Gecko/20100101 Firefox/80.0”
}
参数={
“id”:0,
“txtscripcd”:“,
“pagecont”:“,
“主题”:”
}
def主(url):
r=requests.get(url,params=params,headers=headers)
df=pd.read_html(r.content)[-1].iloc[:,:-1]
打印(df)
主要(”https://www.bseindia.com/markets/MarketInfo/NoticesCirculars.aspx")
输出:


哇!谢谢你的知识和它的工作魅力,但我也需要在网站上的主题栏的超链接。我如何才能获取?
    Notice No   Subject     Segment Name    Category Name   Department
0   20200923-2  Offer to Buy – Acquisition Window (Delisting) ...   Equity  Trading     Trading Operations
1   20200923-1  Change in Name of the Company.  Debt    Company related     Listing Operations