Crawler

手把手教你使用Python抓取QQ音乐数据(第三弹)

本小妞迷上赌 提交于 2020-10-30 08:03:59
点击上方“ IT共享之家 ”,进行关注 回复“ 资料 ”可获赠Python学习福利 【一、项目目标】 通过 手把手教你使用Python抓取QQ音乐数据(第一弹) 我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。 通过 手把手教你使用Python抓取QQ音乐数据(第二弹) 我们实现了获取 QQ 音乐指定歌曲的歌词和指定歌曲首页热评。 此次我们在项目(二)的基础上获取更多评论并生成词云图,形成手把手教你使用Python抓取QQ音乐数据(第三弹)。 【二、需要的库】 主要 涉及的库有:requests、json、wordcloud、jieba 如需更换词云图背景图片还需要numpy库和PIL库(pipinstall pillow) 【三、项目实现】 1.首先回顾一下,下面是项目(二)获取指定歌曲首页热评的代码; def get_comment ( i ): url_3 = 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg' headers = { 'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari

Python办公自动化|从Excel到Word(文末送少儿编程和Git书籍)

落花浮王杯 提交于 2020-10-30 01:46:52
点击上方“ Python爬虫与数据挖掘 ”,进行关注 回复“ 书籍 ”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 遗民泪尽胡尘里,南望王师又一年。 前言 在前几天的文章中我们讲解了如何从Word表格中提取指定数据并按照格式保存到Excel中,今天我们将再次以一位读者提出的真实需求来讲解如何 使用Python从 Excel 中计算、整理数据并写入 Word 中,其实并不难,主要就是以下两步: openpyxl 读取Excel获取内容 docx 读写Word文件 那我们开始吧! 需求确认 首先来看下我们需要处理的Excel部分数据,因涉及隐私已经将数据 皮卡丘化 可以看到数据非常多,并且还存在重复数据。而我们要做的就是对每一列的数据 按照一定的规则进行计算、整理并使用Python自动填入到Word中 ,大致的要求如下 上面仅是部分要求,真实需要填入word中的数据要更多! 除了对按照格式进行处理并存入Word中指定位置之外, 还有一个需求:最终输出的word 文件名 还需要按照一定规则生成: OK,需求分析完毕,接下来看 Python 如何解决! Python实现 首先我们使用Python对该Excel进行 解析 from openpyxl import load_workbook import os # 获取桌面的路径 def GetDesktopPath ()

手把手教你使用Python抓取QQ音乐数据(第一弹)

孤人 提交于 2020-10-29 05:10:43
点击上方“ IT共享之家 ”,进行关注 回复“ 资料 ”可获赠Python学习福利 【一、项目目标】 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。 由浅入深,层层递进,非常适合刚入门的同学练手。 【二、需要的库】 主要涉及的库有:requests、json、openpyxl 【三、项目实现】 1.了解 QQ 音乐网站的 robots 协议 只禁止播放列表,可以操作。 2.进入 QQ 音乐主页 https://y.qq.com/ 3.输入任意歌手,比如邓紫棋 4.打开审查元素(快捷键 Ctrl+Shift+I) 5.分析网页源代码 Elements,发现无歌曲信息,无法使用 BeautifulSoup,如下图所示,结果为空。 6.点击 Network,看数据在不在 XHR(无刷新更新页 面),我的经验是先看 Size 最大的,然后分析 Name, 查看 Preview,果然在里面! 7.点击 Headers,拿到相关参数。如下图,仔细观察 url 与 Query String Parameters 参数的关系,发现 url 中的 w 代表歌手名,p 代表页数。 8.通过 json 代码实现,首先小试牛刀,爬取第一页 的数据,url 直接复制过来。成功! 9.引入 params 参数,实现指定歌手、指定页数的查询。 注意代码url为上一步url中“?

原理+代码|Python实战多元线性回归模型

谁说我不能喝 提交于 2020-10-29 01:20:27
点击上方“ Python爬虫与数据挖掘 ”,进行关注 回复“ 书籍 ”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 寥落古行宫,宫花寂寞红。 前言 「多元线性回归模型」 非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和注意的地方。其中多元共线性这个问题将贯穿所有的机器学习模型,所以本文会 「将原理知识穿插于代码段中」 ,争取以不一样的视角来叙述和讲解 「如何更好的构建和优化多元线性回归模型」 。主要将分为两个部分: 详细原理 Python 实战 Python 实战 Python 多元线性回归的模型的实战案例有非常多,这里虽然选用的经典的房价预测,但贵在的流程简洁完整,其中用到的精度优化方法效果拔群,能提供比较好的参考价值。 数据探索 本文的数据集是经过清洗的美国某地区的房价数据集 import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv( 'house_prices.csv' ) df.info();df.head() 参数说明: neighborhood/area :所属街区和面积 bedrooms/bathrooms :卧室和浴室 style :房屋样式

APScheduler定时任务框架的使用

柔情痞子 提交于 2020-10-23 09:13:44
前言 APScheduler基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,不仅可以添加、删除定时任务,还可以将任务存储到数据库中、实现任务的持久化。基于这些功能,我们可以很方便的实现一个python定时任务系统。 安装 1、利用pip进行安装 pip install apscheduler 2、 APScheduler 有四种组成部分: triggers(触发器):   触发器包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行,除了他们自己初始化配置外,触发器完全是无状态的。 job stores(作业存储):   用来存储被调度的作业,默认的作业存储器是简单地把作业任务保存在内存中,其它作业存储器可以将任务作业保存到各种数据库中,支持MongoDB、Redis、SQLAlchemy存储方式。当对作业任务进行持久化存储的时候,作业的数据将被序列化,重新读取作业时在反序列化。 executors(执行器):   执行器用来执行定时任务,只是将需要执行的任务放在新的线程或者线程池中运行。当作业任务完成时,执行器将会通知调度器。对于执行器,默认情况下选择ThreadPoolExecutor就可以了

两种方式识别“传统”图片验证码

不羁岁月 提交于 2020-08-16 13:59:11
目前,很多网站为了反爬都会采取各种各样的策略,比较简单粗暴的一种做法就是图片验证码,随着爬虫技术与反爬技术的演变,目前验证码也越来越复杂,比较高端的如Google的I‘m not a robot,极验等等。这些新的反爬方式大多都基于用户行为分析用户点击前的鼠标轨迹来判断是访问者是程序还是人。 基于图像处理的图片验证码识别 这篇文章介绍的是破解一般“传统”的图片验证码的步骤。上面提到的极验(目前应用比较广)也已经可以被破解,知乎上有相关的专栏,这里就不重复了。 即便是传统的图片验证码,也是有难度区分的(图一是我母校研究生院官网上的验证码,基本形同虚设;图二则是某网站的会员登录时的验证码增加了一些干扰信息,字符也有所粘连),但是破解的流程大致是一样的。 图1 图2 ▐ 识别步骤 获取样本 从目标网站获取了5000个验证码图片到本地,作为样本。因为后期需要进行监督学习样本量要足够大。 样本去噪 ✎ 先二值化图片 这一步是为了增强图片的对比度,利于后期图片图像处理,代码如下: # 二值化图片 @staticmethod def two_value_img(img_path, threshold): img = Image.open(img_path).convert('L') # setup a converting table with constant threshold tables

视频爬虫

拥有回忆 提交于 2020-08-15 14:09:54
https://github.com/botsphp/douyin_crawler https://blog.csdn.net/qq_41860162/article/details/89086488 来源: oschina 链接: https://my.oschina.net/u/4358408/blog/4304763

MIT6.824 第二课——线程的概念以及分布式并发爬虫

孤人 提交于 2020-08-14 11:25:27
Today: Threads and RPC in Go, with an eye towards the labs 今天: 线程和RPC,着眼于实验室 Why Go? good support for threads convenient RPC type safe garbage-collected (no use after freeing problems) threads + GC is particularly attractive! relatively simple After the tutorial, use https://golang.org/doc/effective_go.html 为什么要去? 良好的螺纹支撑 方便的RPC 安全型 垃圾收集(排除问题后不再使用) 线程+GC特别吸引人! 相对简单 教程结束后,使用https://golang.org/doc/effective_go.html Threads a useful structuring tool, but can be tricky Go calls them goroutines; everyone else calls them threads 一个有用的结构化工具,但可能很棘手 Go称它们为goroutines;其他人都称它们为线程 Thread = "thread of

scrapy自定义扩展(extensions)实现实时监控scrapy爬虫的运行状态

℡╲_俬逩灬. 提交于 2020-08-13 18:33:03
效果图: 废话 如何知道你写的爬虫有没有正常运行,运行了多长时间,请求了多少个网页,抓到了多少条数据呢?官方其实就提供了一个字典就包含一些抓取的相关信息:crawler.stats.get_stats(),crawler是scrapy中的一个组件。你可以在很多组件中访问他,比如包含from_crawler(cls, crawler)方法的所有组件。 既然能得到scrapy的运行状态,想要实时显示出来应该也很简单吧。同样是使用上一篇博客用到的influxdb+grafana来展示数据,我们只需要将scrapy的一些运行信息实时同步到influxdb这个数据库,就能通过grafana以图的形式来展示出数据库里的内容了。 写数据库 如何实时将字典同步到数据库呢?这里肯定要设定一个同步的时间间隔,假设是5秒。那么我们的需求就是让scrapy每5秒写一次爬虫运行状态的信息到数据库,上面提到能访问到crawler.stats.get_stats()这个的组件有很多,比如中间件、管道、爬虫。我们应该在哪个组件中同步信息? 这个我们可以先看一些内置的组件分别实现了什么功能,然后看和需求最相似的功能。很明显,功能最为合适的是extensions这个组件了,有很多人可能都没有用过这个组件,我在看很多博客都很少有提到这个组件的,因为这个组件能做的事,其他也能做,用它只是为了让分工更明确而已

python Scrapy 从零开始学习笔记(一)

左心房为你撑大大i 提交于 2020-08-11 19:10:40
Scrapy 官方网址: https://docs.scrapy.org/en/latest/ Scrapy 中文网址: https://scrapy-chs.readthedocs.io/zh_CN/latest/index.html Scrapy 框架 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码! QQ群:1097524789 Scrapy是用纯Python实 现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy 使用了 Twisted ['twɪstɪd] (其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。 Scrapy架构图(绿线是数据流向): Scrapy Engine(引擎) : 负责 Spider 、 ItemPipeline 、 Downloader 、 Scheduler 中间的通讯,信号、数据传递等。