beautifulsoup

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

我只是一个虾纸丫 提交于 2020-04-26 15:32:45
【一、项目目标】 获取 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中“?”之前的部分, params两边的参数都需要加 ’’,requests.get 添加

Python计算生态概览

自古美人都是妖i 提交于 2020-04-26 14:06:19
  涉及概念:框架,可以理解为一种功能的半成品,它将很多的基础功能都已经完成,只需要用户进行扩展开发或者额外配置,就可以形成用户功能的特定系统。 (1).从数据处理到人工智能   这里会介绍从数据处理到人工智能的完整链条,其中包括: 数据表示->数据清洗->数据统计->数据格式化->数据可视化->数据挖掘->人工智能 。   其中,数据表示指的是采用合适方法,用程序来表达数据。数据清洗指的是将数据进行归一化,将数据进行合理转换,去除数据中的异常值。数据统计指的是对数据进行摘要和概要性的理解,包括数据中的分布、数量、中位数等。数据可视化指的是用直观的方式展示数据的内涵。数据挖掘指的是从数据分析角度获得知识,产生数据之外的价值。人工智能指的是依托于传统的数据、语言、图像、视觉等方便进行深度的分析和决策。   从数据处理到人工智能有一大批与Python相关的第三方生态库,将分为四部分简要介绍,每个部分简要介绍三个Python计算生态。  1)Python库之数据分析   Python数据分析的最基本的库是 Numpy ,它用于表达N维数组,是众多数据分析库的基础。Numpy里面使用 C语言来实现 ,但对外的 接口是Python语言 ,因此使用Numpy为基础的数据分析具有非常 优异的计算速度 。Numpy几乎支撑了Python数据分析和科学计算的所有其他库,比如最常用的pandas库

Python+Google Hacking+百度搜索引擎进行信息搜集

二次信任 提交于 2020-04-26 13:09:01
记录一下在用python爬取百度链接中遇到的坑: 1.获取百度搜索页面中的域名URL BeautifulSoup获取a标签中href属性后,链接为百度url,利用request直接访问默认会直接进行跳转,无法获取所需域名 此时需要将requests的allow_redirects属性设置为False,禁止进行跳转,requests默认会进行跳转 再使用.headers['Location']获取最后链接:final_url = baidu_url.headers['Location'] 2.百度中的链接返回不统一 获取到实际域名链接后,发现还有一些奇怪的东西 访问后发现非site搜集域名 突然想到,很有可能是百度的广告 那就需要筛选出包含baidu.php?的链接去剔除掉 a="baidu.php?" b="url" if a in b:来进行筛选 3.百度安全验证绕过 当在百度搜索链接中加入pn页码参数时,便会直接出现百度安全验证(第一次访问就会出现,并不存在请求频繁) 但发现当手动在浏览器去百度进行site语法请求时,并不会出现百度安全验证码,猜想应该是有在HTTP请求头或者参数中漏掉一些参数   对HTTP请求参数进行一系列不可描述的操作之后,发现还需要"bs"、"rsv_jmp"两个参数 未添加这两个参数时,还存在验证,未获得任何返回数据 添加之后,已成功获取url 4

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

喜你入骨 提交于 2020-04-26 11:04:31
【一、项目目标】 获取 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中“?”之前的部分, params两边的参数都需要加 ’’,requests.get 添加

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

拥有回忆 提交于 2020-04-26 11:02:47
【一、项目目标】 获取 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中“?”之前的部分, params两边的参数都需要加 ’’,requests.get 添加

Python 批量生成中文姓名(百家姓)

∥☆過路亽.° 提交于 2020-04-26 04:32:03
  最近需要造一部分数据,需要用到人名,与其用脚本生成一些随机组合的汉字,不如在网上爬一些看似真实的姓名,所以找来了姓氏大全的网站,网址:http://www.resgain.net/xsdq.html 上图可以看到有很多不同的姓氏,每个姓氏(又是一个网页)里边有很多名字,这样轻轻松松就可以搞定一些真实的数据了, 此时只需要获取名字即可。   用到的库有urllib2 bs4,首先就是用urllib2获取请求,然后用beautifulsoup将请求内容生成可分析对象,然后查找标签即可,很简单,上代码好了。 # -*- coding: utf-8 -*- import urllib2 import sys from bs4 import BeautifulSoup reload(sys) sys.setdefaultencoding("utf-8") def get_name(url): name_list = [] request = urllib2.Request(url) # 创建对名字大全网站get请求 result = urllib2.urlopen(request) # 发出请求 soup = BeautifulSoup(result.read(), 'html.parser') # 生成可分析对象 if soup.find_all("a",class_="btn

Python NLTK 自然语言处理入门与例程(转)

﹥>﹥吖頭↗ 提交于 2020-04-26 04:31:09
转 https://blog.csdn.net/hzp666/article/details/79373720 Python NLTK 自然语言处理入门与例程 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?学习 NLP 能带来什么好处? 简单的说,自然语言处理( NLP )就是开发能够理解人类语言的应用程序和服务。 我们生活中经常会接触的自然语言处理的应用,包括语音识别,语音翻译,理解句意,理解特定词语的同义词,以及写出语法正确,句意通畅的句子和段落。 NLP的作用 正如大家所知,每天博客,社交网站和网页会产生数亿字节的海量数据。 有很多公司热衷收集所有这些数据,以便更好地了解他们的用户和用户对产品的热情,并对他们的产品或者服务进行合适的调整。 这些海量数据可以揭示很多现象,打个比方说,巴西人对产品 A 感到满意,而美国人却对产品 B 更感兴趣。通过NLP,这类的信息可以即时获得(即实时结果)。例如,搜索引擎正是一种 NLP,可以在正确的时间给合适的人提供适当的结果。 但是搜索引擎并不是自然语言处理(NLP)的唯一应用。还有更好更加精彩的应用。 NLP的应用 以下都是自然语言处理(NLP)的一些成功应用: 搜索引擎,比如谷歌

非结构化数据和结构化数据提取

狂风中的少年 提交于 2020-04-25 09:55:35
页面解析和数据提取 一般来讲对我们而言,需要抓取的是某个网站或者某个应用的内容,提取有用的价值。内容一般分为两部分, 非结构化的数据 和 结构化的数据 。 非结构化数据:先有数据,再有结构, 结构化数据:先有结构、再有数据 不同类型的数据,我们需要采用不同的方式来处理。 非结构化的数据处理 文本、电话号码、邮箱地址 正则表达式 HTML 文件 正则表达式 XPath CSS选择器 结构化的数据处理 JSON 文件 JSON Path 转化成Python类型进行操作(json类) XML 文件 转化成Python类型(xmltodict) XPath CSS选择器 正则表达式 为什么要学正则表达式 实际上 爬虫一共就四个主要步骤 : 明确目标 (要知道你准备在哪个范围或者网站去搜索) 爬 (将所有的网站的内容全部爬下来) 取 (去掉对我们没用处的数据) 处理数据(按照我们想要的方式存储和使用) 我们在昨天的案例里实际上省略了第3步,也就是"取"的步骤。因为我们down下了的数据是全部的网页,这些数据很庞大并且很混乱,大部分的东西使我们不关心的,因此我们需要将之按我们的需要过滤和匹配出来。 那么对于文本的过滤或者规则的匹配,最强大的就是正则表达式,是Python爬虫世界里必不可少的神兵利器。 什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则

03 爬虫实例-获取网页弹幕内容

爷,独闯天下 提交于 2020-04-24 23:10:21
练习:爬取哔哩哔哩网页弹幕内容,并将爬取的内容以五角星的形式显示出来 思路: 向哔哩哔哩网站发送请求 请求成功后,解析爬取的弹幕内容保存到一个文件中 读取文件并分析弹幕内容中词组或文字出现的频率 将这些词组或文字组成五角星图形 组成五角星图形后,以图片的形式输出 实现: 1 # !/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # author:albert time:2019/10/28 4 import requests 5 from bs4 import BeautifulSoup 6 import pandas as pd 7 import re 8 import jieba 9 from wordcloud import WordCloud 10 from imageio import imread 11 import matplotlib.pyplot as plt 12 13 ''' 14 --获取网站弹幕列表内容 15 ''' 16 # 网页地址,该地址只针对哔哩哔哩弹幕网有效,获取方式查看 17 url = " http://comment.bilibili.com/124001121.xml " 18 19 # 网站访问的用户代理,建议携带,不携带可能无法访问 20 header = { 21 " User

Python初学阶段这些问题你都搞懂了吗?(含学习路径)

冷暖自知 提交于 2020-04-24 17:41:46
Python基础语法学习路径 python 概念层级 表达式 → 创建、处理对象 语句 → 包含表达式 逻辑单元 → 函数或者类,由语句组成 模块 → .py 代码文件组成模块 包 → 定义一组有关系的文件,或者模块(包是文件夹,模块是其中的文件,且文件夹中包括一个init.py 文件) 程序 → 若干个包+若干个文件 十大易错点分别是哪些? 1、变量命名问题 2、数值和字符串计算的区别 3、列表与字典的区别 4、序列索引问题 5、字典索引问题 6、range() 7、两种运算符:赋值运算与比较运算 8、死循环问题 * 9、f(x)与f( x)的区别 10、函数中return和print的区别 用Python实现第一个数据爬虫 我们来做一个豆瓣书籍评分的爬虫。 导入模块: import requests from bs4 import BeautifulSoup ​ print('成功导入模块') 代码注释写的很清楚,这里就不解释了。 代码如下: # 提取标签 ​ #print(soup.head) # 头部信息 print(soup.title) # 标题 print(soup.a) # 提取的第一个a标签 <title>新书速递</title> <a class="nav-login" href="https://accounts.douban.com/passport