如何对具有内部iFrame的iFrame进行webcrape



我是网络抓取的新手。我有我们的大学网站,在iFrame中有结果。结果iFrame具有许多内部链接,这些链接重定向或加载具有相应结果的iFrame。我怎样才能用美肌擦出我这学期的成绩。

链接:http://cvr.ac.in/home4/index.php/academics/results在显示的iFrame中,我想在链接中抓取,比如说";B.Tech IV YEAR II SEM主要考试(R15-B16(于2020年8月举行;

早些时候,他们有一个单独的结果页面,没有框架,我可以这样做:

import requests
from bs4 import BeautifulSoup as bs
result = requests.post("<old url>", data={'srno':'<number>'})
s = bs(result.content, 'lxml')
//skim thru results

但我不知道如何在框架的情况下做到这一点。感谢您的帮助。提前谢谢。

要从2020年8月链接获取数据,可以使用以下示例:

import requests
from bs4 import BeautifulSoup
url = 'http://cvr.ac.in/home4/index.php/academics/results'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'}
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')
base_url = 'https://' + soup.iframe['src'].replace('https://', '').split('/')[0]
soup = BeautifulSoup(requests.get(soup.iframe['src'], headers=headers).content, 'html.parser')
# select AUGUST 2020 link:
link = base_url + soup.select_one('a:contains("AUGUST 2020")')['href']
data = {
'srno': "1111",     # <-- Change to your desired ROLL number
'type': "roll",
'phase1':  ""
}
soup = BeautifulSoup( requests.post(link, data=data, headers=headers).content, 'html.parser' )
# parse your required data from soup
# ...