马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 johnnyb 于 2020-7-15 16:23 编辑
理论上,只要替换url 和 写入的txt文件名. 即可爬其他任何小说. 具体没测试.import requests
from bs4 import BeautifulSoup
import os
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
url = 'http://www.shicimingju.com/book/sanguoyanyi.html'
html_text = requests.get(url=url, headers=headers).text # 获取目录
soup = BeautifulSoup(html_text, 'lxml') # lxml解析
li_list = soup.select('.book-mulu > ul > li') # 选择标签
if not os.path.exists('./三国演义'): # 创建文件夹
os.mkdir('./三国演义')
f = open('./三国演义/sanguo.txt', 'w', encoding='utf-8') # 创建文件
for li in li_list: # 遍历所有的li标签.里面包含有连接和标题
title = li.a.string # 该章节标题
info_url = 'http://www.shicimingju.com'+li.a['href'] # 取到该章节的连接,并进行完善
info_text = requests.get(info_url, headers=headers).text # 有了连接,就可以请求对应章节的text
info_soup = BeautifulSoup(info_text, 'lxml') # 还是lxml解析
div_tag = info_soup.find('div', class_='chapter_content') # 定位内容部分标签.
data_text = div_tag.get_text() # 获取正文部分
f.write(title+data_text+'\n') # 写入标题加对应正文.换行符隔开
print(title,'爬取写入完成.')
print('Over All')
结果预览画面! 请多指教.
|