类+进程池的方法爬取喜马拉雅

python是一门面向对象的语言,那么我们在写爬虫的时候自然也可以用到类的封装来实现爬虫。

一、类的使用

  首先是对类的封装,可以将一些请求头写入构造函数当中(因为后面有进程池使用,所以构造函数不需要带参数,如果带上在后面的进程池中,也会报错)。

二、Ajax数据处理

  喜马拉雅的音乐也是采用Ajax的数据交互方式,所以需要用到urllib来构造请求的网址,因此在类的函数中需要传递一个参数,来控制访问的页面的内容。

1 data = {
2             "albumId": 3627097,
3             "pageNum": n,
4             "sort": -1,
5             "pageSize": 30
6         }
7         url_1 = "https://www.ximalaya.com/revision/play/album?" + urlencode(data)

可以看到需要参数n来控制URL,并且进程中我们也是要利用这个n值的。

三、Pool

  导入第三方模块

1 from multiprocessing import Pool

1     def download(self):
2         groups = [x for x in range(1, 34)]
3         pool = Pool(5)
4         pool.map(self.parse, groups)
def download(self):    groups = [x for x in range(1, 34)]    pool = Pool(5)    pool.map(self.parse, groups)

原文地址:https://www.cnblogs.com/future-dream/p/10347354.html

时间: 2024-10-09 22:47:48

类+进程池的方法爬取喜马拉雅的相关文章

使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据

1 # 使用requests请求网页,爬取网页的内容 2 3 # 模拟使用进程池模拟多进程爬取网页获取数据,使用进程绑定的回调函数去处理数据 4 5 import requests 6 from multiprocessing import Pool 7 8 # response = requests.get('http://www.baidu.com') # 访问网页获取网页内容,得到一个网页内容的结果对象<Response [200]>这个200是一个状态码,200表示网页正常的返回,40

如何用Python爬取喜马拉雅全网音频文件

什么是喜马拉雅 喜马拉雅FM是国内分享平台,3月手机客户端上线,两年多时间手机用户规模已突破2亿 [1] ,成为国内发展最快.规模最大的在线移动音频分享平台. 今天小编分享爬取喜马拉雅的单本全集的音频文件和全网站的音频 环境配置: Windows + Python 3.6 爬取单本音频 1 import json 2 3 import re 4 5 import requests 爬取全站模块使用 1 import re 2 3 import requests 4 5 from lxml imp

Python中使用requests和parsel爬取喜马拉雅电台音频

场景 喜马拉雅电台: https://www.ximalaya.com/ 找到一步小说音频,这里以下面为例 https://www.ximalaya.com/youshengshu/16411402/ 博客:https://blog.csdn.net/badao_liumang_qizhi关注公众号霸道的程序猿获取编程相关电子书.教程推送与免费下载. 实现 找到下载地址 使用谷歌浏览器打开上面网址,按F12打开调试,点击播放按钮后,然后找到Network下的Media下的Headers下的Req

自定义进程池的方法

一 .比较low的线程池 import queue,time,threading class My_theading_pool(object): def __init__(self,num = 20): self.queue = queue.Queue(num) #在类中分装一个队列,队列中最多容纳20 for i in range(num): self.queue.put(threading.Thread) #在队列的20个位置上放置线程 def get_thead(self): return

打造IP代理池,Python爬取Boss直聘,帮你获取全国各类职业薪酬榜

爬虫面临的问题 不再是单纯的数据一把抓 多数的网站还是请求来了,一把将所有数据塞进去返回,但现在更多的网站使用数据的异步加载,爬虫不再像之前那么方便 很多人说js异步加载与数据解析,爬虫可以做到啊,恩是的,无非增加些工作量,那是你没遇到牛逼的前端,多数的解决办法只能靠渲染浏览器抓取,效率低下,接着往下走 ? 千姿百态的登陆验证 从12306的说说下面哪个糖是奶糖,到现在各大网站的滑动拼图.汉子点击解锁,这些操作都是在为了阻止爬虫的自动化运行. 你说可以先登录了复制cookie,但cookie也有

python 多线程方法爬取微信公众号文章

本文在上一篇基础上增加多线程处理(http://blog.51cto.com/superleedo/2124494  ) 执行思路: 1,规划好执行流程,建立两个执行线程,一个控制线程 2,线程1用于获取url,并写入urlqueue队列 3,线程2,通过线程1的url获取文章内容,并保存到本地文件中 4,线程3用于控制程序,保证1,2线程都执行完后退出 5,多线程退出程序,在子线程设置daemon为true,保证程序正常退出 6,添加异常处理,添加限时防止屏蔽 闲话不多说,上代码 #!/usr

简单的方法爬取b站dnf视频封面步骤解释

这随笔代码链接:http://www.cnblogs.com/yinghualuowu/p/8186375.html 首先我们要知道,一个分区封面显示到底在哪里可以找到. 很明显,查看审查元素并不能找到封面.这个时候应该想到封面是动态加载的. 再次去Network寻找,我们发现这样一个JS.这是右侧热门视频封面的内容,点开之后存在pic:正是封面的链接. 进行json解析之后,判定pic在data>archives结构下.这个时候链接是有了,那么将如何把Json拿出来呢? 让我们观察一下原来的信

scrapy项目4:爬取当当网中机器学习的数据及价格(CrawlSpider类)

scrapy项目3中已经对网页规律作出解析,这里用crawlspider类对其内容进行爬取: 项目结构与项目3中相同如下图,唯一不同的为book.py文件 crawlspider类的爬虫文件book的生成命令为:scrapy genspider -t crawl book 'category.dangdang.com' book.py代码如下: # -*- coding: utf-8 -*- import scrapy # 创建用于提取响应中连接的对象 from scrapy.linkextra

第36篇 多进程的数据共享,进程池的回调函数,线程 什么是GIL锁,Threading模块记

内容概览: 进程 数据共享 进程池--回调函数 线程 线程的基础理论 什么是线程? 线程与进程的关系 GIL锁 线程的开启: Threading模块1,用多进程开启socket创建聊天 server端写了input函数会报错?因为服务器是高速运行的,自动化的为来访问的客户端提供服务, 不可能停下来等待管理员的输入,然后发送给客户.这就失去了自动化的意义. 2,进程池Pool()方法创建的进程,map()方法是否有返回值? p.map()得到的是迭代对象 import time from mult