【发布时间】:2021-11-03 08:31:23
【问题描述】:
我正在尝试从以下网站 抓取 数据。这些表被分成不同的页面,但所有页面都使用相同的 url。我正在使用 Requests、pandas 和 BeautifulSoup 来解析 HTML 代码,我只能抓取初始表,但我想要所有表中的全部数据。
注意我只尝试使用 Pandas、Beautifulsoup 和 requests ....not Selenium 注意此网站显示特定时间的数据,页面范围从 0 到 9 或有时 10,15
我编写了程序,但它只提取第一个表,我想从所有页面中提取数据。请帮帮我
import requests
from bs4 import BeautifulSoup
import pandas as pd
params = { #Console
"pos": " ",
"stats": " ",
"type": " "
}
data = { # Network --> Request
"__EVENTTARGET" : "grdMWCG@ctl29", #grdMWCG$ctl29$ctl00
'__EVENTARGUMENT': "", #'FireCommand:grdMWCG$ctl29;PageSize;1000',
#'__VIEWSTATE' : "qI7kN0JsQhV3qLHXe45eUTDT1YiA+R/k6VJkLSCL++BAyoKgHIgYgPbr+q/NsFwQ5BHwqPkAeV25qNkOUOoz3vfYWD1d77cTyCM4sJKinGsyC9FfPkqSEPT5lEOhkP41a3Xo1GywCFbapgM83hXY5/Lu/RrQAjLNdEUwsg+dj/WHn+aE",
'__VIEWSTATEGENERATOR': "00145D45",
'__VIEWSTATEENCRYPTED':""
#'__EVENTVALIDATION': "41pWf5gO9W1jt4YKQK30WKaHlv3pGh+kaJAUpRk5MkyZqR/AauHgJ5YEFWg9DjwtQNxwXWSH6QbNwjgOjgyI2fkLOtSbFu0r9JuA+dXqtmvLUuIHECQv8HNH+8a1c179u6QvlBSsSMzIvpfJNPPu7ats04coyA3FHDghbZPDWqREQeq5"
}
def main(url):
with requests.Session() as req:
# r = req.get(url, params=params)
r = req.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
data['__VIEWSTATE'] = soup.find("input", id="__VIEWSTATE").get("value")
data['__EVENTVALIDATION'] = soup.find(
"input", id="__EVENTVALIDATION").get("value")
#r = req.post(url, params=params, data=data)
r = req.post(url , data=data)
df = pd.read_html(r.content, attrs={
'id': 'grdMWCG'})[0] #Table id #grdMWCG
#df.drop(df.columns[3], axis=1, inplace=True)
print(df)
df.to_csv("ccil.csv", index=False)
main("https://www.ccilindia.com/OMMWCG.aspx")
【问题讨论】:
-
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已根据 CC BY-SA license 授予 SE 分发内容的不可撤销权利(即无论您未来的选择如何)。根据 SE 政策,分发非破坏版本。因此,任何破坏行为都将被撤销。请参阅:How does deleting work? …。如果允许删除,则帖子下方左侧有一个“删除”按钮,但仅在浏览器中,而不是移动应用程序中。
标签: python python-3.x python-requests