实验 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, Any import requests from bs4 import BeautifulSoup urls=[] 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.text def getSoup(url): txt=getURL(url) soup=BeautifulSoup(txt,'html.parser') return soup def getContent(soup): content=soup.find('ul',{'class':'news_list list2'})# ul对应的list titles=[] 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 titles articles=[] for url in urls: soup=getSoup(url) articles.append(getContent(soup)) t="" for item in articles: t=t+(str)(item) # 制作词云 import jieba import wordcloud jieba.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')
上一篇:MyBatis多表查询和注解开发