ggly55 2021-04-20 16:14 采纳率: 100%
浏览 34
已采纳

萌新求救,文件保存一部分后就报错?

 

import requests
from bs4 import BeautifulSoup
import os

url1 =' http://www.juda.cn'

def request(url):
    resp = requests.get(url)
    html = resp.content
    soup = BeautifulSoup(html,"lxml")
    # print(soup)
    return soup


def main(url):
    soup = request(url)
    lis = soup.find('div',class_="news_list").find_all('div',class_="text")

    #数据保存目录
    path = os.getcwd()+u'//爬取内容1//'
    if not os.path.exists(path):
        os.mkdir(path)
    #获取每篇文章的链接
    for i in lis:
        ff = i.find('div', class_="a_title").find_all('a', class_="size4-6p")
        for it in ff:
            link = url1 + it.get('href')

            #请求每篇文章
            result = request(link)
            title = result.find('section',class_="title_part").find('h1',class_="size1-9p").get_text()
            # print(title)
            paper = result.find('div',class_="all col-md-12").find_all('p')
            content = ''
            for p in paper:
                content += (p.text + '\n')
                # print(content)
            # 文章标题内容保存
            totlename = path + title +'.text'
            print(totlename)
            paper = open(totlename,'w',encoding='utf-8')
            paper.write('<<' + title + '>>\n\n')
            paper.write(content)
            paper.close()

if __name__ == '__main__':
    for i in range(1, 7):
        firsturl = 'http://www.juda.cn/search/index.html?keyword=%E4%B8%AD%E5%9B%BD%E9%93%81%E5%A1%94+%E6%A2%AF%E6%AC%A1%E7%94%B5%E6%B1%A0&type=news'
        url2 = firsturl + "&page=" + str(i)
        main(url2)

 

 

  • 写回答

6条回答 默认 最新

  • 天元浪子 Python领域优质创作者 2021-04-20 16:27
    关注

    题主抓到内容解析出来的title,有多个包含了/符号,比如“中国铁塔以0.68元/Wh价格收购电池 梯次利用储能成本优势明显”。作为文件名,这是一个非法的符号,所以程序崩掉了。建议将这个/去掉或替换为其他字符,比如导入re模块,将第39行改为:

    totlename = path + re.compile(r'/').sub('-', title) +'.text'

    轻松写完全部文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集