果然搞黄色才是第一生产力,我从大二就开始想自学编程,几年下来连入门都没学完。
几个月前下黄小说的时候觉得实在太麻烦了,于是开始学习写爬虫。
和大家分享下我用来爬黄网小说的爬虫。
复制代码- import requests
- import re
- import os
- # 输入链接地址
- short_url = input('short_url: ')
- url = 'http://www.dierbanzhu1.com/%s' % short_url # 链接地址
- response = requests.get(url) # 请求网页响应
- response.encoding = 'gbk' # 重编码 charset
- html = response.text # 保存网页响应
- dl = re.findall(r'<dl>.*?</dl>',html,re.S)[0] # 获取章节数据
- chapter_info_list = re.findall(r'href="(.*?)">(.*?)<',dl) # 获取章节列表
- novel_title = re.findall(r'<meta property="og:title" content="(.*?)"/>',html)[0]
- def mkdir(path): # 新建文件保存小说内容
- folder = os.path.exists(path)
- if not folder: # 判断是否存在文件夹如果不存在则创建为文件夹
- os.makedirs(path) # makedirs 创建文件时如果路径不存在会创建这个路径
- print("新建文件夹……")
- print("新建文件夹完成")
- else:
- print("已有文件夹")
-
- file = novel_title
- mkdir(file)
- #获取每章节信息
- for chapter_info in chapter_info_list:
- chapter_url = chapter_info[0] #章节链接地址
- chapter_url = "http://www.dierbanzhu1.com%s" % chapter_url #章节网页响应
- chapter_response = requests.get(chapter_url) #重编码
- chapter_response.encoding = 'gbk' #保存响应
- chapter_html = chapter_response.text #章节标题
- chapter_title = re.findall(r'<h1>(.*?)</h1>',chapter_html)[0] #章节内容
- chapter_content = re.findall(r'<div id="content".*?</div>',chapter_html,re.S)[0]#清洗文档
- chapter_content = chapter_content.replace(' ',' ')
- chapter_content = chapter_content.replace("<br />",' ')
- chapter_content = chapter_content.replace('<div id="content">',' ')
- chapter_content = chapter_content.replace('</div>',' ') #保存文档
- fb = open(novel_title + '/' + '%s.txt' % chapter_title, 'w', encoding='utf-8')
- fb.write(chapter_title)
- fb.write(chapter_content) #完成提醒
- print('完成')
|
在
http://www.dierbanzhu1.com/ 打开小说后,将url最后一部分输入即可下载。