目标网站:静听网

网站url:http://www.audio699.com/

目标文件:所有在线听的音频文件

附:我有个喜好就是晚上睡觉听有声书,然而很多软件都是付费才能听,免费在线网站虽然能听,但是禁ip很严重,就拿静听网来说,你听一个在线音频,不能一个没听完就点击下一集,甚至不能快进太快,否则直接禁你5分钟才能再听,真的是太太讨厌了...

于是我就想用爬虫给它爬下来存储本地就nice了.

我把我的大概分析步骤分享出来.

步骤1:

我查看静听网网页url有一个规律,基网址是http://www.audio699.com/book/,每本书对于一个唯一标识,比如 《借种》 这本书的url如下:(唯一标识1276)

步骤2:

分析html源码:我发现这个网站的每本书的每一集的url就是再上述url后添加集数,并且网页html中包含了音频文件的src如下:

到这里我有点奇怪,这个网站封ip这么严,为什么src会直接放在静态网页中暴露如此明显,我尝试着随便复制一个src,使用python下载这个文件,嗯,瞬间就下载好了,我心想python还真不错,然而当我播放下载好的m4a文件时,发现只有5s,里面传来熟悉的声音"您访问过快,请5分钟后刷新网页重新访问",,,我心想果然没那么简单。。。

然后我重新打开网页获取刚才那个src发现src的值竟然变了,我经过测试发现这个src几乎时时刻刻都在变化,且毫无规律.

哼,想到这里我其实反倒松了口气,只要我用代码实时获取src并且开始下载应该就能解决这个问题吧,于是我测试了一下我的想法

果不其然,这样的确可以下载成功,但是这样一个一个下载速度太慢,一本有声书可是有好几百集音频文件,一集一集下不现实,于是我便用了多线程和多进程下载,

编写好python代码后,测试发现刚开始还行,但下了不到10个音频后出现错误,403 forbidden,503 service unaviable,意思是远程计算机拒绝我的计算机访问网页,文件传输服务不可用,就是这一系列的错误,就是禁了我的ip

我最开始本来想到要不要构建个ip代理池,我心想我的不同进程访问的网页url都不相同,应该没有什么大问题,哎,看来不能偷懒啊,于是我又到西刺高匿代理网站爬取了一些代理ip,我还专门写了一个筛选脚本,筛选能够成功获取目标网页html的ip,改写代码后,再次尝试,发现虽然没有再出现403等错误,但是下载成功率低的惊人,开30个线程,200个代理ip,等了半小时回来看,

tmd,才下好5,6个文件,很多文件只有十几k,看着贼烦,哎,看来这免费ip质量还是不行,存活时间太短,于是我只好到大象代理网站买了ip(一天9元好贵),然后经过

筛选再次爬取,这次一共爬200个音频,等了半个小时运行结束,发现大概下载成功了170个文件,其他文件要么直接0k,要么残缺不全,,,

为此我又写了一个脚本,专门用于下载文件夹中下载失败的文件,这次我采用多进程方式下载,写完后运行,等了一会,发现程序运行差不多了,但没运行结束,我直接结束运行,发现原来的30个残缺文件只有极少数几个还没下载成功,我筛选ip再运行脚本,这次很快就下好了,看来筛选出ip很重要,

接下来我又改进了脚本的一些地方,多线程,多进程个写了一个,配合着下载能够完全将几百集的音频文件全部下载

2019/6/4日追加:其实静听网src获取容易然而下载真的不容易,ip不够用,现在静听网ip封的更加严,也许站长发现有人大量爬取网站音频,新添了反扒手段,现在买的代理ip都不管用了,不想说了,都是伤心...

为此,我还另外写了56听书网,天方听书网,好看听书网(良心网站),听书阁这些网站的音频脚本,其中好看听书网最容易,本身支持下载;56听书网获取音频源地址需要用到phantomjs,下载也容易,反扒不严重;听书阁,天方也还可以,基本582562078有声书资源是不愁了.

forever-activatecode:b'dGhhdF9uaWdodA=='@@

isfree:naf@@

bandAllusers:n@@

activatecode:b'6YKj5LiA5aScdGhhdF9uaWdodA=='@@

activatecode:b'NTgyNTYyMDc4'@@

转载于:https://www.cnblogs.com/lyj-blogs/p/10855898.html

静听网+python爬虫+多线程+多进程+构建IP代理池相关推荐

  1. python代理ip多进程_静听网+python爬虫+多线程+多进程+构建IP代理池

    目标网站:静听网 网站url:http://www.audio699.com/ 目标文件:所有在线听的音频文件 附:我有个喜好就是晚上睡觉听有声书,然而很多软件都是付费才能听,免费在线网站虽然能听,但 ...

  2. 【python爬虫】 爬取ip代理池

    """ 目标:python 爬取ip代理池 所需模块:request bs4 模块安装: bs4: pip install bs4 开发环境:Pycharm python ...

  3. python如何基于redis实现ip代理池

    这篇文章主要介绍了python如何基于redis实现ip代理池,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用apscheduler库定时爬取i ...

  4. 爬虫基础篇之IP代理池

    代理池介绍 由众多ip组成提供多个稳定可用代理IP的ip池. 当我们做爬虫时,最常见的反爬手段就是IP反爬,当同一个IP访问网站超出频控限制,将会被限制访问,那么代理IP池应运而生.资金充足的情况下个 ...

  5. (十三)python网络爬虫(理论+实战)——IP代理、构建IP代理池

    系列文章: python网络爬虫专栏 目录 序言 本节学习目标 特别申明 5 ip代理

  6. Python3网络爬虫开发实战,IP代理池的维护

    我们在上一节了解了代理的设置方法,利用代理我们可以解决目标网站封 IP 的问题,而在网上又有大量公开的免费代理,其中有一部分可以拿来使用,或者我们也可以购买付费的代理 IP,价格也不贵.但是不论是免费 ...

  7. 爬虫-Scrapy (十) 搭建ip代理池

    每一个爬虫程序员都应该有一个ip池,就像每个战士都应该有一把风剑. 一.找到一个ip代理提供商 提供ip代理的服务商很多,基本都会先提供些不稳定的免费ip,然后引导你消费,我们本次的目标就是把免费的i ...

  8. python 爬取西刺ip代理池

    1. 如何在requests中设置ip代理 最直接的用法,在get中添加proxies设置ip代理 proxies = {'https': 'http://183.148.153.147:9999/' ...

  9. python爬虫多线程多进程示例

    # -*- coding: utf-8 -*- '''美图录''' #------------------------------------------------- import re impor ...

最新文章

  1. 斯坦福连续发了四年的AI报告,今年讲了什么?
  2. Java8读文件仅需一行代码
  3. python搞笑代码-python有趣代码
  4. poj 3077Rounders(模拟)
  5. 如何在云服务器上安装vim(bash: vim :command not found)
  6. C语言浮点数据在内存中的存储方式
  7. 量子相干与量子纠缠_量子分类
  8. 再不懂ZooKeeper,就安安心心把这篇文章看完
  9. CoreMotion 框架
  10. iOS 通讯录编程【总结】
  11. Rust : 危险! 关于字符串切片以及取值......
  12. ASP.NET 创建网站地图
  13. 求素数(质数)算法的N种境界 - 试除法和初级筛法
  14. ie11浏览器For win7 x64 官方下载 V9600 官方版
  15. 计算机如何设定远程,电脑远程控制功能怎么设置
  16. 机体坐标系的角速度分量
  17. Polar码(2)- Polar编码
  18. 博弈——五分钟知悉如何用线性规划做棋牌博弈
  19. 图片访问错误显示碎图
  20. 谈谈我对云原生与软件供应链安全的思考

热门文章

  1. 聚观早报|春节档新片预售总票房破千万;苹果获可折叠iPhone新专利
  2. PHP开发基于Mirai的QQ机器人(一)
  3. Vue基础-输入文本框
  4. C++裁剪图像并填充
  5. spring boot项目报错:Validation failed for query for method public abstract...
  6. 使用母版页实现页面布局
  7. 阿里云、腾讯、华为、滴滴为何都在用 SkyWalking ?
  8. mysql:查询排名
  9. 求最大公约数和最小公倍数-python3
  10. jenkins 怎么配置阿里企业邮箱进行email发送