不对,这样修改美誉偶办法执行之前1到472 循环、

动态 未结 0 107
小小草
小小草 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'}) with open('novel.txt', 'w', encoding='utf-8') as f: 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 f.write(title + '\n\n' + content + '\n\n') time.sleep(3) ``` 在这个例子中,我们使用`with open()`语句打开一个文件,并指定写入模式和编码方式。然后使用`f.write()`方法将爬取到的内容写入文件中。每次循环都会将新的章节内容写入文件中,而不是覆盖之前的内容。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复