爬虫beautifulsoup 使用信安培训2019年5月25日
beautifulsoup
beautifulsoup安装
![CMD命令行pip安装beautifulsoup4库 CMD命令行pip安装beautifulsoup4库](./images/1558785207485.png)
CMD命令行pip安装beautifulsoup4库
学习样例题目
题目地址
![题目截图 题目截图](./images/1558785281461.png)
题目截图
解题步骤
beautifulsoup 快速讲解
查看源代码
![算式位置在p标签中 name=‘myexpr’的div中 算式位置在p标签中 name=‘myexpr’的div中](./images/1558785394078.png)
算式位置在p标签中 name=‘myexpr’的div中
代码
import requests
from bs4 import BeautifulSoup
r = requests.get('http://ctf5.shiyanbar.com/jia/index.php')
r.encoding = r.apparent_encoding
soup = BeautifulSoup(r.text,'html.parser')
a = soup.find_all('div',{"name":"my_expr"})
![匹配相应数据 匹配相应数据](./images/1558785555512.png)
匹配相应数据
代码2
只有一个p标签
所以可以直接这么使用直接匹配p
b=soup.p.div.get_text()
例题二爬取中国大学排名
解析出排名和大学名称即可
![大学排名网站 大学排名网站](./images/1558790354175.png)
大学排名网站
from bs4 import BeautifulSoup
import requests
r = requests.get('http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html')
r.encoding = r.apparent_encoding
attr = {"class":"table table-small-font table-bordered table-striped"}
soup = BeautifulSoup(r.text,'html.parser')
a = soup.find('table',attr)
a = a.find_all('tr',{"class":"alt"})
result = '排名,大学\n'
for i in a:
result += i('td')[0].text +','+i.div.text+'\n'
with open('rank.csv','w') as f:
f.write(result)