荒泷天下第一斗 2021-07-16 22:12 采纳率: 100%
浏览 52
已采纳

一个程序里能实现爬取的文件保存下来,然后再读取吗?怎么写?

我现在只写好了读取部分,爬取的文件保存下来这部分不知道怎么写。

from bs4 import BeautifulSoup
import requests
import re
import codecs
import urllib.request, http.cookiejar


# 选择给定的任一文件(science.txt、international.txt、military.txt、sports.txt、yuanfudao.txt)读取
f = open('114514.html', 'r', encoding='UTF-8')
html = f.read()
f.close()


# 使用BeautifulSoup功能,利用'html.parser'解析器解析html
soup = BeautifulSoup(html, 'html.parser')
# 使用select功能,通过 类选择器 搜索 class="news_list" 的ul标签,并使用索引[0]取值
all_ul_tag = soup.select('.news_list')[0]
# 使用find_all功能,查找all_ul_tag标签对象中的全部 li 标签对象
all_li_tag = all_ul_tag.find_all('li')
# 使用for循环遍历all_li_tag标签对象
for li in all_li_tag:
    # 使用find功能,查找li标签对象中的img标签对象
    news_image = li.find('img')
    # 使用get功能,获取img标签对象(news_image)的src属性,取出链接
    news_image_link = news_image.get('src')
    # 使用find功能,查找li标签对象中的a标签对象
    news = li.find('a')
    # 使用get功能,获取a标签对象(news)的href属性,取出链接
    news_link = news.get('herf')
    #使用get_text功能,获取a标签对象(news)内的文本信息
    news_name = news.get_text()


    # 使用find_all功能,查找li标签对象中的全部span标签对象
    span_list = li.find_all('span')
    #使用get_text功能,获取span标签对象(span_list)内的文本信息,并使用索引[0]取出“作者”信息
    news_writer = span_list[0].get_text()
    # 使用get_text功能,获取span标签对象(span_list)内的文本信息,并使用索引[1]取出“时间”信息
    news_time = span_list[1].get_text


    #将数据存入一维列表 [news_name, news_writer, news_time, news_link, news_image_link]
    news_item = [news_name, news_writer, news_time, news_link, news_image_link]
    print(news_item)


  • 写回答

3条回答 默认 最新

  • 碧池阿蒂拉 2021-07-17 03:00
    关注
    with open('保存路径.html', 'wb') as f:
        f.write(requests.get('链接').content)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月17日
  • 创建了问题 7月16日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度