栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

小说下载器exe

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小说下载器exe

user_agent [ Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html) , Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727) , Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506) , Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) , Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US) , Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0) , Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322) , Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30) , Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30) , Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527 (KHTML, like Gecko, Safari/419.3) Arora/0.6 , Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1 , Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0 , Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5 , Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6 , Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11 , Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20 , Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52 ] url info_get.x book_name info_get.y r requests.get(url url, headers headers, timeout 20) r.encoding r.apparent_encoding html etree.HTML(r.text) # 解析章节 li_list html.xpath( //*[ id list ]/dl//a/ href )[9:] print( 共计 str(len(li_list)) 章 ) a,用于计数 成功请求到html并完成后续的存写数据才会继续请求下一个url b,在循环中存放未经过信息返回存储判断的a 用于与下一次循环的a作比较 判断a是否有变化 c,若超过10次b a c会自增 则说明应该跳过此章节 同时d减一 d,章节长度 d len(li_list) try: path info_get.z fp open(path / str(book_name) .txt , w , encoding utf-8 ) except: fp open( ./ str(book_name) .txt , w , encoding utf-8 ) #这里循环了20倍次数的章节 防止无法爬取完所有的信息。 for i in range(20*len(li_list)): url li_list[a] #判断使用http还是https if url[4:5] s : proxies random.choice(ip_list[0]) else: proxies random.choice(ip_list[1]) try: r requests.get(url url, headers { User-Agent : random.choice(user_agent)}, proxies proxies, timeout 5 r.encoding r.apparent_encoding r_text r.text html etree.HTML(r_text) try: title html.xpath( /html/body/div/div/div/div/h1/text() )[0] except: title html.xpath( /html/body/div/div/div/div/h1/text() ) text html.xpath( //*[ id content ]/p/text() ) text1 [] for i in text: text1.append(i[2:]) 使用变量b来存放未变化的a 若下次循环b与a相等 说明此次请求没有成功 c 因为某些页面本身存在错误没有数据 则需要跳过。 若c大于10 说明超过十次的请求,都因为一些缘由失败了 则a 跳过这一章节 同时变量d减一 避免后续跳出循环时出现索引错误 if b a: if c 10: #a 1 跳到下一个url 若没有取出信息则a-1.再次请求,若有数据返回则保存 if len(text1) 0: a- 1 else: fp.write( 第 str(a) 章 str(title) :n t str( , .join(text1) nn )) #print( 《 str(title) 》 , 下载成功 ) #print( 进度: str(int(100 * (a / d))) % ) root.update() var3.set( 下载进度: str(int(100 * (a / d))) % ) l8 tk.Label(root, fg red , font 12, width 10, height 2, textvariable var3) l8.place(x 5, y 320) r.close() except EnvironmentError as e: pass # a是作为索引在li_list中取出对应的url 所以最后a的值等于li_list长度-1 并以此为判断标准是否跳出循环。 if a d: break print(book_name 下载完成 ) var4.set(book_name 下载完成 ) fp.close() def selectPath(): path_ askdirectory() info_get.z path_
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266754.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号