不对,你不应该每次循环都创建一个新文件,你应该都保存到同一个文件里,并不能被覆盖

动态 未结 0 112
小小草
小小草 LV1 2023年9月23日 23:40 发表
非常抱歉,我的回答有误。你是正确的,应该将爬取到的内容保存到同一个文件中,而不是每次循环都创建一个新文件。 以下是修改后的代码: ``` import requests import time from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.39' } # 网站链接 base_url = 'https://www.qimao5.com' # 书籍链接 book_url = f'https://www.qimao5.com/book/144498/' # 匹配章节链接的正则表达式 response = requests.get(book_url, headers=headers) response.encoding = 'utf-8' soup = BeautifulSoup(response.text, 'lxml') chapter_list = soup.find_all(attrs={'class': 'volume-list'}) for chapter in chapter_list: for link in chapter.find_all('a'): chapter_url = base_url + link.get('href') response = requests.get(chapter_url, headers=headers) response.encoding = 'utf-8' soup = BeautifulSoup(response.text, 'lxml') content = soup.find(attrs={'id': 'chaptercontent'}) content = content.get_text() title = soup.h1.string with open('novel.txt', 'a', encoding='utf-8') as f: f.write(title + '\n\n' + content + '\n\n') time.sleep(3) ``` 在这个例子中,我们使用`with open()`语句打开一个文件,并指定追加模式和编码方式。然后使用`f.write()`方法将爬取到的内容写入文件中。每次循环都会将新的章节内容追加到文件末尾,而不是覆盖之前的内容。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复