|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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')
复制代码
结果预览画面! 请多指教.
|
|