我想抓住这个网站https://www.eduvision.edu.pk/institutions-detail.php?city=51I&institute=5_allama-iqbal-open-university-islamabad,我只想要这个网址中的单身汉数据,这是在类名= academicsList下,我不想要下面的MS(MASTERS)数据。我希望我的刮刀在ms数据之前停止。我的逻辑是我们可以在class = academicsHead上设置临时增量器,当它获得第二个学术头时它应该停止
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
ua = UserAgent()
header = {'user-agent':ua.chrome}
response = requests.get('https://www.eduvision.edu.pk/institutions-detail.php?city=51I&institute=5_allama-iqbal-open-university-islamabad',headers=header)
soup = BeautifulSoup(response.content, 'html.parser')
disciplines = soup.findAll("ul", {"class": "academicsList"})
#temp = soup.findAll("ul",{"class":"academicsHead"})
#stop at second academicsHead
for d in disciplines:
print(d.findAll('li')[0].text)
我们可以检查这个类是否是'academicsHead',如果没有打破循环,只检查文本是否是BACHELOR。像这样的东西会起作用:
disciplines = soup.findAll('ul',attrs={'class':re.compile(r'academics+(.)+')})
for i in disciplines:
if i['class'][0] == 'academicsHead':
if i.find('li').text.strip() != 'BACHELOR':
break
else:
print(i.find('li').text.strip())