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

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看