第1关:获取超文本文件并保存至本地
本关任务:本关我们将使用Python程序,实现通过网页的url,获得服务器返回的超文本文件,并保存为文本文件。
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 16 16:36:53 2020
@author: Administrator
"""
import requests
url="http://www.hnu.edu.cn/"
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',\
'Cookie': 'UM_distinctid=170ca008441705-08af6796ac96bd-4313362-13c680-170ca0084438b1; CNZZDATA2429570=cnzz_eid%3D1971580084-1567084943-%26ntime%3D1584353773; JSESSIONID=35363DFBE1030D8729DA47D76340D6DD'}
#文件名
filename='hnu.txt'
def gethtml(url):
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 1.获取网页文件并返回
response=requests.get(url,headers=headers)
response.encoding='utf-8'
html=response.text
return(html)
####### End #######
def saveinfo(html,filename):
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 2.将html保存到文件文件
with open(filename,'w') as f:
f.write(html)
####### End #######
html=gethtml(url)
saveinfo(html,filename)
第2关:获取新闻标题和链接
本关任务:前一关我们已经用requests获得了湖大首页的网页文件,这一关在此基础上对网页进行解析,获取首页新闻的标题和链接并分别保存到嵌套列表titles中,最后将titles列表的内容保存到文本文件中。
文本文件的格式如图所示:
# -*- coding: utf-8 -*-
"""
Created on Mon Mar 16 16:36:53 2020
@author: Administrator
"""
import requests
from bs4 import BeautifulSoup
url="http://www.hnu.edu.cn/"
filename='hnu.txt'
def gethtml(url):
response=requests.get(url)
response.encoding='utf-8'
return response.text
def gettitle(html):
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 1.解析网页,获取湖大首页上的新闻标题和链接,放入titles列表
titles=[]
soup=BeautifulSoup(html,'lxml')
soup1=soup.find('div',class_="hdxw-right fr")
data=soup1.find_all('a')
for x in data:
titles.append([x.text,x.get('href')])
####### End #######
return titles
def saveinfo(titles,filename):
# 请按下面的注释提示添加代码,完成相应功能
###### Begin ######
# 2.将titles列表中的内容保存到文件文件
with open(filename,'w') as f1:
for x in titles:
f1.write(x[0]+'\n')
f1.write(x[1]+'\n')
####### End #######
html=gethtml(url)
titles=gettitle(html)
saveinfo(titles,filename)