您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

如何把互联网上只能看不能下载的东西给下载下来

时间:2020-08-21 11:18:00  来源:  作者:

前言

很多免费的资源只能看但是不提供下载,今天我们以小说为例教你如何把互联网上只能看不能下载的东西给下载下来

今天刚上手爬虫,当然要从最简单的开始啦,验证一下所学的知识

 

知识点:

  • requests
  • css选择器
  • 全站小说爬取思路

开发环境:

  • 版 本:anaconda5.2.0(Python3.6.5)
  • 编辑器:pycharm 社区版

代码

导入工具

import requests
import parsel

请求头

headers = {
    'User-Agent': 'gao fu shui'
}

请求数据

response = requests.get(chapter_url, headers=headers)
# 设置文本的编码为 utf-8
# response.encoding = 'utf-8'
# 万能解码 99%的情况下都是对的
# print(response.Apparent_encoding)  # requests 自动识别的编码
# print(response.encoding)  # 服务直接我们的编码
response.encoding = response.apparent_encoding
# print(response)
html = response.text
# print(html)
# print(response.headers)
# # 响应体.请求体.请求头信息
# print(response.request.headers)
# # 查看源码 ctrl + 鼠标左键
# print(response.cookies)

解析数据

# css xpath
# parsel = css + xpath + re
# 把字符串变成可以解析的对象
selector = parsel.Selector(html)

# selector.css()
# selector.xpath()
# selector.re()
# get 获取对象里面的文字内容
# 属性提取器 attr
h1 = selector.css('.reader h1::text').get()
# print(h1)
content = selector.css('.showtxt::text').getall()
# print(content)
# # xpath 路径提取器
# h1 = selector.xpath('//h1/text()').get()
# print(h1)
# content = selector.xpath('//*[@class="showtxt"]//text()').getall()
# print(content)
# 去除每一个空白字符
# 定义一个空列表,留待备用 {}
lines = []

for c in content:
    lines.append(c.strip())

print(h1)
# print(lines)

# str join 字符串的合并方法
text = 'n'.join(lines)
# print(text)

保存数据

file = open(book_name + '.txt', mode='a', encoding='utf-8')
file.write(h1)
file.write('n')
file.write(text)
file.write('n')
file.close()

获取所有章节的下载地址

# download_one_chapter('http://www.shuquge.com/txt/8659/2324752.html')
# download_one_chapter('http://www.shuquge.com/txt/8659/2324753.html')
# download_one_chapter('http://www.shuquge.com/txt/8659/2324754.html')

def download_one_book(index_url):
    index_response = requests.get(index_url, headers=headers)
    index_response.encoding = index_response.apparent_encoding
    sel = parsel.Selector(index_response.text)
    book_name = sel.css('h2::text').get()
    # 提取了所有章节的下载地址
    urls = sel.css('.listmain dl dd a::attr(href)').getall()
    # 不要最新的 12 章放在最前main
    for url in urls[12:]:
        chapter_url = index_url[:-10] + url
        print(chapter_url)
        download_one_chapter(chapter_url, book_name)
# download_one_book('http://www.shuquge.com/txt/8659/index.html')
# download_one_book('http://www.shuquge.com/txt/5809/index.html')
# download_one_book('http://www.shuquge.com/txt/63542/index.html')
"""下载玄幻类的第一页"""
# 2_1.html 控制类别页数 可以for in 生产类别 for in 生产 页数
for cate in ['1', '2', '4']:
    for page in range(1, 101):
        cate_url = 'http://www.shuquge.com/category/' + cate + '_' + str(page) + '.html'
        cate_response = requests.get(cate_url, headers=headers)
        cate_response.encoding = cate_response.apparent_encoding
        sel = parsel.Selector(cate_response.text)
        # 提取了所有章节的下载地址
        urls = sel.css('.l.bd > ul > li > span.s2 > a::attr(href)').getall()
        # 不要最新的 12 章放在最前main
        for url in urls:
            print(url)
            download_one_book(url)


Tags:下载   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
这是很久以前的一则数据,我在iOS平台开发了“先知 - 优质生活”App,本想依靠封闭式环境,广告少体验不错等优点。会有一定的下载量,没想到开发完成后,就被App store埋藏起来了。个...【详细内容】
2021-12-27  Tags: 下载  点击:(3)  评论:(0)  加入收藏
在windows使用中通常会需要命令脚本下载文件。这里记录了几种在cmd下不需要其他三方程序就可以直接下载文件的方法。1.certutil certutil -urlcache -split -f https://www....【详细内容】
2021-12-27  Tags: 下载  点击:(2)  评论:(0)  加入收藏
之前我们讲到说,有些网站在复制的时候会提示一个弹窗,我们可以去掉网站的copy事件监听就可以了,但是我们经常用到的一个网站,百度文库,网站不是这样设计的。 可以随便打开一个百...【详细内容】
2021-12-03  Tags: 下载  点击:(9)  评论:(0)  加入收藏
在实验室环境中,我一直在尝试Windows 11部署,并开始更新我在实验室中使用的一些方法来部署 Windows 11 的映像。这些工具包括 Microsoft Deployment Toolkit (MDT)。请注意,目前,W...【详细内容】
2021-12-01  Tags: 下载  点击:(44)  评论:(0)  加入收藏
TikTok零基础新手小白快速入门TikTok常见问题系列Tiktok国际版下载Tiktok注册不了专题07:不会英语也能做Tiktok跨境电商吗?不会英语怎么做Tiktok跨境电商?答案当然是能做!其实不...【详细内容】
2021-11-11  Tags: 下载  点击:(25)  评论:(0)  加入收藏
前言最近对 WebRTC iOS 端源码进行了下载和编译,网上针对 WebRTC iOS 端的编译文章基本都是几年前的,有些地方已经不适用于最新版的 WebRTC 的编译,简单记录下载&编译的过程,以...【详细内容】
2021-11-10  Tags: 下载  点击:(38)  评论:(0)  加入收藏
你听过很多播客的内容吗?你有时也会在 Mac 上收听播客吗?或者你可能有兴趣将播客下载到 Mac 离线收听,这样你就可以在旅行或没有网络的情况下使用。 苹果发布的 Podcasts 应用...【详细内容】
2021-11-09  Tags: 下载  点击:(46)  评论:(0)  加入收藏
工业和信息化部近日印发通知,决定自2021年11月1日起到2022年3月底,开展信息通信服务感知提升行动(简称“524”行动)。“524”行动将聚焦影响用户感知的信息通信服务环节,推动实现...【详细内容】
2021-11-02  Tags: 下载  点击:(36)  评论:(0)  加入收藏
从开始分享软件工具到现在,询问百度网盘名不限速下载的问题就没有间断过,看来大家也是苦百度网盘已久,本文咱们就分享一下百度网盘不限速下载的方法。 文章比较长,实际上操作...【详细内容】
2021-10-25  Tags: 下载  点击:(525)  评论:(0)  加入收藏
很多刚上手Mac电脑的小白用户都会遇到这样的情况,我下载的东西去哪里找?由于Mac系统和win系统的不同,所以下载方式也有很大的区别。下面我们分享一下Mac下载完后的内容都在哪里...【详细内容】
2021-10-20  Tags: 下载  点击:(42)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条