实例(全国大学排名)
实例url:http://school.nihaowang.com/rank/6122/1.html
分析连接,第一页连接为1.html,第二页为2.html由此推断连接格式为:数字.html。
分析每个大学的a标签是用来存取大学信息的,title属性保存了此标签的大学名称,且我们可以通过class属性的值来查找符合条件的信息。
爬取过程:使用了requests,re,bs4库。通过requests库获取静态页面内容,之后通过BeautifulSoup来包装对应页面内容,通过findall方法来查找符合条件的a标签,最后通过标签属性attrs来获取大学名称。(重点是分析html源码,通过re库进行筛选)
import requests,re
from bs4 import BeautifulSoup
def getHtmlText(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return 'Error'
count=1
for i in range(1,56):
url="http://school.nihaowang.com/rank/6122/"+str(i)+".html"
strs=getHtmlText(url)
soup=BeautifulSoup(strs,"html.parser")
r=soup.find_all('a','ranking_04a')
for j in r:
print('排名'+str(count)+":",j.attrs['title'])
count=count+1
爬取结果: