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

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

 

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

报告相同问题?

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表