'''
['False', 'None', 'True', 'and', 'as',
'assert', 'async', 'await', 'break',
'class', 'continue', 'def', 'del',
'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return', 'try',
'while', 'with', 'yield']
'''
from lxml import etree as tt # 导入lxml 库 中 etree 模块 自定义 名 tt
import requests as gg #导入 requests库 自定义 名 gg
from time import sleep as sp #导入time 库中 sleep 模块 自定义 sp
def jc(): #自定义函数
"""这是一个判断用函数"""
while True: # while 循环
print("这是一个小说下载功能,请输入小说第一章地址:") # 提示
global a,b #声明变量为全局变量
a = input("") # 获取输入字符串
print("检查输入:%s" % a) # 输出内容以检查
print("正确请输入 1,错误请输入2") # 判断用途
b = int(input()) # 获取输入并转换成 int 型
if b == 1: # 判断值
print("开始下载.........") # 提示
break # 跳出循环
def pd200() :
"""判断服务器返回值"""
global b,repa
repa = gg.get(a,headers=headers) #requsts get 方式请求
repa.encoding='utf-8'
if repa.status_code ==200: #判断是否返回200 以表示链接正常
op = 0 #定义一个变量
tf = "■" #定义一个字符串符号
'''
while True:
op +=1 #变量自增
print("%s"%(tf*op),end="") #字符串自增 提示用
sp(1) # 添加1秒的延时
if op >3: #判断变量 跳出循环
break #跳出当前循环
'''
print() #清楚end="" 对输出不自动换行的设定
htx() # 调用自定义下载函数
else: #如果没有返回200 提示并重置 b变量值
b=0
print("当前网站不支持操作, 请更换源站点! 系统重启中....")
#------------------------------------------------------
def htx():
"""自定义下载函数"""
'''
hq = tt.fromstring(repa.text)
tre = hq.xpath('//div/p')
'''
print(repa.text)
#------------------------------------------------------
b = 0 #给b一个初始值
headers= {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36'
} # 告诉网站我是浏览器
#------------------------------------------------------
while True:
if b ==0: #如果b=0 判断其首次使用 重复调用函数
jc() #调用自定义函数
else:
print("当前设置:%d 尝试下载中....."%b)
pd200()#调用自定义函数
break
看了好多文档说 requests 只能拿静态数据 ,动态数据不能获取
emm我很抱歉........
全部耗时2天 ,敲敲打打 照着抄代码都能错,技术难搞哦
'''
['False', 'None', 'True', 'and', 'as',
'assert', 'async', 'await', 'break',
'class', 'continue', 'def', 'del',
'elif', 'else', 'except', 'finally',
'for', 'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return', 'try',
'while', 'with', 'yield']
'''
from lxml import etree as tt # 导入lxml 库 中 etree 模块 自定义 名 tt
import requests as gg # 导入 requests库 自定义 名 gg
from time import sleep as sp # 导入time 库中 sleep 模块 自定义 sp
def jc(): # 自定义函数
"""这是一个判断用函数"""
while True: # while 循环
print("这是一个小说下载功能,请输入小说第一章地址:") # 提示
global url, b # 声明变量为全局变量
url = input("") # 获取输入字符串
print("检查输入:%s" % url) # 输出内容以检查
print("正确请输入 1,错误请输入2") # 判断用途
b = int(input()) # 获取输入并转换成 int 型
if b == 1: # 判断值
print("开始下载.........") # 提示
break # 跳出循环
def pd200():
"""判断服务器返回值"""
global b, rrt #声明全局变量
rrt = gg.get(url=url, headers=headers) # requsts get 方式请求
rrt.close()
rrt.encoding='utf-8' #编码格式设置
if rrt.status_code == 200: # 判断是否返回200 以表示链接正常
op = 0 # 定义一个变量
tf = "■" # 定义一个字符串符号
while True:
op +=1 #变量自增
print("%s"%(tf*op),end="") #字符串自增 提示用
sp(1) # 添加1秒的延时
if op >2: #判断变量 跳出循环
break #跳出当前循环
print() # 清楚end="" 对输出不自动换行的设定
htx() # 调用自定义下载函数
else: # 如果没有返回200 提示并重置 b变量值
b = 0
print("当前网站不支持操作, 请更换源站点! 系统重启中....")
# ------------------------------------------------------
def htx():
"""自定义下载函数"""
hq =tt.HTML(rrt.text) #lxml处理html
teltb =hq.xpath('//h1/text()')#获取表头
uui=hq.xpath('//div[@class ="panel-body"]/p/text()')#lxml.xpath 定位
kku = "\n".join(uui) #列表转换
name ="".join(teltb)
with open("%s.txt"%name,"w",encoding="utf-8")as f:
f.write(kku)
# ------------------------------------------------------
b = 0 # 给b一个初始值
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
} # 告诉网站我是浏览器
# ------------------------------------------------------
while True:
if b == 0: # 如果b=0 判断其首次使用 重复调用函数
jc() # 调用自定义函数
else:
print("当前设置:%d 尝试下载中....." % b)
pd200() # 调用自定义函数
break
现在还有个小问题 name 获取到是(1/2)这种 命名 (1/2).txt 会报错 找不到文件
emm