【问题标题】:Not able to go get next page data using post request in Python无法使用 Python 中的发布请求获取下一页数据
【发布时间】:2021-08-08 04:53:25
【问题描述】:

我正在尝试从这个网站上抓取数据。

import requests
pload = {
     '__EVENTARGUMENT':'Page$4'
}
r = requests.post('https://ncte.gov.in/website/RecognizedInstitutionLists.aspx?stateid=S8cOijQRRVW35%2fajiqT1hQ%3d%3d&state=KARNATAKA&regionid=4',data=pload, verify=False)

print(r.text)

但上面的代码总是返回第一个网页的数据。即使我更改了有效负载中的页码,它也会返回第一页。如何通过更改请求正文获取下一页的数据?

【问题讨论】:

  • 下一页依赖于javascript,您的发布请求在这里不起作用,只是请求发送此页面的静态html。您可以使用 selenium 轻松解决它。我可以帮助你用 scrapy 处理 selenium。
  • 那么如何让它工作呢?使用python
  • 请给我看一下 selenium 和 scrapy 的代码。
  • 如果你喜欢这种方式,那么我必须解决。
  • 发布请求也可以,如果您可以准确地发送表单数据。在这里你会看到formdata是如此的复杂。

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


【解决方案1】:

您也只能使用 pandas 获取表数据。 这是解决方案

代码:

import pandas as pd
dfs = pd.read_html('https://ncte.gov.in/website/RecognizedInstitutionLists.aspx?stateid=S8cOijQRRVW35%2fajiqT1hQ%3d%3d&state=KARNATAKA&regionid=4')
df = dfs[0]
print(df)

输出:

   S.No.         File No.  ...           Order Type           Order
0                 1         APS05618  ...  Initial Recognition        Download
1                 2         APS02295  ...  Initial Recognition        Download
2                 3         APS02255  ...  Revised Recognition        Download
3                 4         APS03118  ...  Initial Recognition        Download
4                 5         APS05489  ...  Initial Recognition        Download
..              ...              ...  ...                  ...             ...
96              NaN              NaN  ...           Withdrawal        Download
97               86         APS01651  ...  Initial Recognition        Download
98               87  SRCAPP201630064  ...  Revised Recognition        Download
99              NaN              NaN  ...  Revised Recognition        Download
100  12345678910...   12345678910...  ...       12345678910...  12345678910...

[101 rows x 12 columns]

【讨论】:

  • 好的,谢谢,但是下一页呢?你还说要用scrapy和selenium来做这件事:(
  • 其实,这里是总数据。它只是动态显示分页。
  • 实际上,我们无法修复一种技术来抓取网站,而不是网站向我们展示了我们必须使用什么技术来抓取网站。谢谢
  • 只是第一页的总数据,请提供下一页数据的方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多