实验 1:爬取网页中的数据。
要求:使用 urllib 库和 requests 库分别爬取 http://www.sohu.com 首页的前 360 个字节的数据。
# 要求:使用 urllib 库和 requests 库分别爬取 http://www.sohu.com 首页的前 360 个字节的数据。
import urllib.request
import requests
# 使用 urllib 库爬取 http://www.sohu.com 首页的前 360 个字节的数据。
url = 'http://www.sohu.com'
req = urllib.request.Request(url)
res = urllib.request.urlopen(req)
data = res.read(360)
print(data)# 使用 requests 库爬取 http://www.sohu.com 首页的前 360 个字节的数据。
#url = 'http://www.sohu.com'
#res = requests.get(url)
#data = res.content[:360]
#print(data)
实验 2:测试 BeautifulSoup 对象的方法。
要求:
1)创建 BeautifulSoup 对象。
2)测试搜索文档树的 find_all()方法和 find()方法。
# 实验 2:测试 BeautifulSoup 对象的方法。
# 要求:
# 1)创建 BeautifulSoup 对象。
# 2)测试搜索文档树的 find_all()方法和 find()方法。
from bs4 import BeautifulSoup
import requests
# 过http请求加载网页
response = requests.get("http://www.sohu.com")
# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, "html.parser")
# 搜索文档树的find_all()方法
print(soup.find_all("a"))
# 搜索文档树的find()方法
print(soup.find("a"))
实验 3:爬取并分析网页页面数据。
(1)使用requests库爬取https://www.hnnu.edu.cn/main.htm首页内容。
(2)编写程序获取https://www.hnnu.edu.cn/119/list.htm的通知公告的信息。
# 实验 3:爬取并分析网页页面数据。
# (1)使用requests库爬取https://www.hnnu.edu.cn/main.htm首页内容。
# (2)编写程序获取https://www.hnnu.edu.cn/119/list.htm的通知公告的信息。
import requests
from bs4 import BeautifulSoup
url = 'https://www.hnnu.edu.cn/main.htm'
res = requests.get(url)
soup = BeautifulSoup(res.text,'html.parser')
print(soup.find_all('a'))
print(soup.find('a'))for i in range(1,23,1):url = 'https://www.hnnu.edu.cn/119/list.htm{}.htm'.format(i)res = requests.get(url)soup = BeautifulSoup(res.text,'html.parser')print("-------------------------------------------------------")print(soup)#print(soup.find('a'))
实验四:爬取关键词+制作词云
# 爬取关键字
from typing import List, Anyimport requestsfrom bs4 import BeautifulSoupurls=[]for i in range(1,23):urls.append('https://www.hnnu.edu.cn/gyxy/list'+str(i)+'.htm')# 这里改地址def getURL(url):r=requests.get(url)r.encoding='utf-8'return r.textdef getSoup(url):txt=getURL(url)soup=BeautifulSoup(txt,'html.parser')return soupdef getContent(soup):content=soup.find('ul',{'class':'news_list list2'})# ul对应的listtitles=[]dates=[]for item in content.find_all('li'):# titles.append(item.a['title'])date=item.find('span',{'class':'news_meta'})# dates.append(date.string)titles.append([date.string,item.a['title']])return titlesarticles=[]for url in urls:soup=getSoup(url)articles.append(getContent(soup))
t=""
for item in articles:t=t+(str)(item)
# 制作词云
import jiebaimport wordcloudjieba.add_word("淮南师范学院")ls=jieba.lcut(t)w=wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='simhei.ttf')txt=" ".join(ls)w.generate(txt)w.to_file('out1.png')