Python-网络思维-2.1网络爬虫基础

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

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值