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: 你好!要利用url获取文本文件保存至本地,可以使用Python中的requests库和文件操作相函数。具体操作如下: 1. 导入requests库:在Python代码中使用import语句导入requests库,例如:`import requests` 2. 发送请求获取文本文件:使用requests库发送HTTP请求获取文本文件,例如:`response = requests.get(url)`。其中,url是要获取文本文件URL地址,response是服务器返回的响应对象。 3. 保存文件:使用Python的文件操作相函数将获取到的文本文件保存至本地,例如:`with open('filename.html', 'wb') as f: f.write(response.content)`。其中,'filename.html'是要保存的文件名,response.content是响应对象的二进制内容,以二进制模式('wb')打开文件并将内容写入文件。 完成以上操作后,文本文件就被保存到了本地,可以在指定的文件夹中找到它。 ### 回答2: 在程序中获取文本文件是一项常见的操作。对于需要在本地保存该文档的情况,需要使用Python中的requests模块和文件操作模块。以下是实现该过程的详细步骤: 1.导入requests和os模块 首先需要导入需要使用的模块,即requests和os。requests是Python中用于发送HTTP请求的模块,而os模块则是Python中用于管理操作系统功能,包括文件和目录操作等。 import requests import os 2.定义获取URL中的文档内容的函数 接下来需要定义一个函数,该函数接收一个URL作为输入参数,并返回该URL中的文档内容。使用requests库发送get请求获取文档内容,并使用text属性获取文档中的文本内容。 def download(url): response = requests.get(url) content = response.text return content 3.定义保存文档的函数 定义一个函数,该函数接受文档内容和保存位置两个参数,并在本地保存文件。打开文件时需要将文件保存的路径和文件名进行合并。 def save_to_file(content, path): with open(path, 'w', encoding='utf-8') as f: f.write(content) 4.调用函数并传入URL保存位置 在程序中调用定义的函数,获取文档内容,并将其保存至指定位置。需要先调用获取文档的函数,然后再使用保存文档的函数将其保存至本地。 url = 'https://www.example.com/document.html' content = download(url) file_path = os.path.join(os.getcwd(), 'document.html') save_to_file(content, file_path) 以上就是利用URL获取文本文件保存至本地的方法。通过requests库获取文档内容,然后使用文件操作模块将其保存至本地。这一过程在Python中十分简单,并且易于理解和使用。 ### 回答3: 使用 Python 编程语言可以很容易地利用 URL 地址获取文本文件保存至本地。以下是具体步骤: 第一步:导入 urllib.request 库 通过在 Python 解释器中输入“import urllib.request”即可导入 urllib.request 库,这个库是 Python 中用来进行 URL操作的标准库之一。 第二步:打开 URL 并读取数据 使用 urllib.request 库中的 urlopen() 函数可以顺利地打开指定的 URL 地址,并将获取到的数据存储在内存中。例如,可以使用以下代码获取 Python 的官方网站的 HTML 文件: ``` import urllib.request response = urllib.request.urlopen('https://www.python.org/') html = response.read() ``` 在上述代码中,首先使用 urllib.request.urlopen() 函数打开了 https://www.python.org/ 这个 URL 地址,并将获取到的数据存储在 response 变量中。然后,使用 response.read() 函数将读取的 HTML 数据存储在 html 变量中。 第三步:将数据写入本地文件 使用 Python 中的内置函数 open() 和 write() 可以将一个字符串写入指定的文件。例如,可以使用以下代码将上述获取到的 Python 官网 HTML 文件写入到本地文件中: ``` with open('python.html', 'wb') as f: f.write(html) ``` 在上述代码中: 1. `'python.html'` 表示将要写入到的本地文件名; 2. `'wb'` 表示写入文件时使用二进制模式(可以避免因编码格式不同而导致的问题); 3. `f.write(html)` 表示将 html 变量中的数据写入到文件中。 在以上三个步骤都做完后,只需要执行 Python 程序(例如将上述代码存储到文件 `save_html.py` 中,并在控制台输入 `python save_html.py`)即可实现获取文本文件保存至本地。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值