用户:SUS丶Un查看:0 回复:7 评论:0 创建时间:2020-08-20T23:15:17
【作品展示】

【作品介绍】
获取小说内容
【作品源代码】
'''
获取网页中的小说内容
详细教程见https:/记/blog.cs得dn.net/we删ixin_4除4824717/我article/哦details/1防08喵100077
本程序仅供学习交流,切勿用做商业用途
作者QQ:2330153227
个人主页:https:/记/n得tfago.删github除.io/ 目前还在开发中,未对外开放
'''
import requests
from bs4 import BeautifulSoup
import random
# 全部网页列表,后面进行循环取出页面,然后处理
urllist = ['http:/记/www.quanben得5.com/n/chuim删ianbuhan除yangliufeng/{}.html'.format(page) for page in range(17482,17650)]
# 请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win喵; x喵) AppleWebKit/537.36 (KH喵L, like Gecko) Chrome/84.0.4147.125 Safari/537.36"
}
# 正向代理,代理池。
# 如果一个ip地址,快速,一直请求的话,会被网页认为是爬虫,然后把你的ip地址封禁了。。所以用正向代理。。然后在下面用random模块,随机取出一个ip地址进行请求!
paramslist = ['121.232.199.237:9000','125.108.67.254:9000','123.163.118.102:9999',
'125.108.67.254:9000','171.35.172.151:9999','123.101.231.234:9999',
'125.108.67.254:9000','123.163.118.102:9999','171.35.172.151:9999',
'123.101.231.234:9999','113.195.16.16:9999','175.44.109.145:9999',
'125.108.85.141:9000','175.43.32.21:9999','183.166.103.22:9999',
'125.110.96.80:9000','123.160.69.100:9999','112.111.217.69:9999',
'1.199.30.133:9999','123.55.102.150:9999','120.83.104.196:9999',
'180.118.128.138:9000','163.204.95.253:9999','113.195.18.89:9999',
'113.195.16.191:9999','175.42.129.76:9999','125.110.124.214:9000',
'125.110.102.54:9000','36.249.119.16:9999','125.110.89.240:9000',
'171.35.146.70:9999','124.93.201.59:42672','171.35.173.112:9999']
# 从代理池里面,随机取出一个ip地址,进行访问
httpindex = random.randint(0,len(paramslist)-1)
params = {
'HTTP': paramslist[httpindex]
}
# for循环每一个列表,进行处理
for pageurl in urllist:
# 下面的两行就是看一个下载进度提示,没有意义
index1 = urllist.index(pageurl)+1
print("第{}下载".format(index1))
# 发送请求,获取页面
response = requests.get(url=pageurl,headers=headers,params=params)
reshtml = response.content.decode()
# 用bs4解析页面
soup = BeautifulSoup(reshtml,'lxml')
# 获取小说全部内容的标签
restextlist = soup.select('#content p')
# 获取小说标题的标签
titlelist = soup.select('.content h1')
# 获取标题的文字,然后进行特殊符号的替换,以免很后面文章命名文件出错
title_text = titlelist[0].get_text()
title_text =title_text.replace('*','')
print("正在下载---{}---".format(title_text))
# 打开文件,进行写入文章的全部的小说,文件命名就是“标题.txt”,写的方式'w',编码方式是'utf-8'
with open("./08novel/{}.txt".format(title_text),'w',encoding='utf-8') as f:
f.write(title_text+"\n")
# for循环获取的article_text 是带有内容的p标签
for article_text in restextlist:
# article_text.get_text()这一个才是p标签,获取其中的内容。换行
f.write(article_text.get_text()+"\n")
print("下载完成---{}---".format(title_text))
print("全部下载完成!")
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn'''
获取网页中的小说内容
详细教程见https:/记/blog.cs得dn.net/we删ixin_4除4824717/我article/哦details/1防08喵100077
本程序仅供学习交流,切勿用做商业用途
作者QQ:2330153227
个人主页:https:/记/n得t喵o.删github除.io/ 目前还在开发中,未对外开放
'''
import requests
from bs4 import BeautifulSoup
import random
# 全部网页列表,后面进行循环取出页面,然后处理
urllist = ['http:/记/www.quanben得5.com/n/chuim删ianbuhan除yangliufeng/{}.html'.format(page) for page in range(17482,17650)]
# 请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KH喵L, like Gecko) Chrome/84.0.4147.125 Safari/537.36"
}
# 正向代理,代理池。
# 如果一个ip地址,快速,一直请求的话,会被网页认为是爬虫,然后把你的ip地址封禁了。。所以用正向代理。。然后在下面用random模块,随机取出一个ip地址进行请求!
paramslist = ['121.232.199.237:9000','125.108.67.254:9000','123.163.118.102:9999',
'125.108.67.254:9000','171.35.172.151:9999','123.101.231.234:9999',
'125.108.67.254:9000','123.163.118.102:9999','171.35.172.151:9999',
'123.101.231.234:9999','113.195.16.16:9999','175.44.109.145:9999',
'125.108.85.141:9000','175.43.32.21:9999','183.166.103.22:9999',
'125.110.96.80:9000','123.160.69.100:9999','112.111.217.69:9999',
'1.199.30.133:9999','123.55.102.150:9999','120.83.104.196:9999',
'180.118.128.138:9000','163.204.95.253:9999','113.195.18.89:9999',
'113.195.16.191:9999','175.42.129.76:9999','125.110.124.214:9000',
'125.110.102.54:9000','36.249.119.16:9999','125.110.89.240:9000',
'171.35.146.70:9999','124.93.201.59:42672','171.35.173.112:9999']
# 从代理池里面,随机取出一个ip地址,进行访问
httpindex = random.randint(0,len(paramslist)-1)
params = {
'HTTP': paramslist[httpindex]
}
# for循环每一个列表,进行处理
for pageurl in urllist:
# 下面的两行就是看一个下载进度提示,没有意义
index1 = urllist.index(pageurl)+1
print("第{}下载".format(index1))
# 发送请求,获取页面
response = requests.get(url=pageurl,headers=headers,params=params)
reshtml = response.content.decode()
# 用bs4解析页面
soup = BeautifulSoup(reshtml,'lxml')
# 获取小说全部内容的标签
restextlist = soup.select('#content p')
# 获取小说标题的标签
titlelist = soup.select('.content h1')
# 获取标题的文字,然后进行特殊符号的替换,以免很后面文章命名文件出错
title_text = titlelist[0].get_text()
title_text =title_text.replace('*','')
print("正在下载---{}---".format(title_text))
# 打开文件,进行写入文章的全部的小说,文件命名就是“标题.txt”,写的方式'w',编码方式是'utf-8'
with open("./08novel/{}.txt".format(title_text),'w',encoding='utf-8') as f:
f.write(title_text+"\n")
# for循环获取的article_text 是带有内容的p标签
for article_text in restextlist:
# article_text.get_text()这一个才是p标签,获取其中的内容。换行
f.write(article_text.get_text()+"\n")
print("下载完成---{}---".format(title_text))
print("全部下载完成!")点赞0
评论