第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)

 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐