通过Python实现对大麦网近期城市演出数据进行爬取,通过分析,发现大麦网属于Python爬虫策略中“中等型”难度网站,演唱会数据封装在json文件中,所以直接爬取json文件,提取出需要的演出信息,保存为CSV文件。






# coding=gbk
import csv
import io
import requests
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码#导入包和设置代理头,简单防反爬
headers = {'cookie': 'cna=J7K2Fok5AXECARu7QWn6+cxu; isg=BCcnDiP-NfKV5bF-OctWuXuatl3xrPuOyBVJJfmQLrZn6ESqAX0y3jrhCuj2ANMG; l=eBSmWoPRQeT6Zn3iBO5whurza77O1CAf1sPzaNbMiIncC6BR1AvOCJxQLtyCvptRR8XcGLLB4nU7C5eTae7_7CDmndLHuI50MbkyCef..','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
#解析json数据
url = f'https://search.damai.cn/searchajax.html?keyword=&cty=&ctl=&sctl=&tsg=0&st=&et=&order=1&pageSize=30&currPage=1&tn='
response = requests.get(url)
# 使用json()方法,将response对象,转为字典(此字典嵌套列表)
json_text = response.json()
#逐层展开字典,获得城市列表
rdata = json_text['pageData']['factMap']['cityname']
print(rdata)#定义表头
headers = ['name','count']
# 将爬取的列表嵌套字典转化为csv模式
with open(r"city_count.csv",'w', newline='') as f:#创建初始化写入对象f_csv = csv.DictWriter(f, headers)#写入表头f_csv.writeheader()#按行写入数据f_csv.writerows(rdata)


# coding=gbkfrom pyecharts import options as opts
from pyecharts.charts import WordCloud
import csv#from wordcloud import WordCloud'''
代码思路:使用pyecharts画词云时
数据中的每一个词为
(word,value)这样的元组形式
然后将所有的词放入一个list中
'''#将词频文件读入一个元组列表
with open('../Spiders/city_count.csv')as f:#跳过表头head = next(f)data = [tuple(line) for line in csv.reader(f)]
print(data)#实例化对象
mywordcloud = WordCloud()
#设置词云参数
mywordcloud.add('演出场数',data,word_size_range=[20,100],word_gap=100,rotate_step=55,)
# 全局配置项
mywordcloud.set_global_opts(# 标题设置title_opts=opts.TitleOpts(title="大麦网演出信息统计",title_textstyle_opts=opts.TextStyleOpts(font_size=40)))
### 渲染图片
### 指定渲染图片存放的路径
mywordcloud.render('词云.html')





# coding=gbk
import csvfrom wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np#读取词频CSV文件,并将其转化为一个字典,key值为name,value为演出次数,即count
dict={}
with open('../Spiders/city_count.csv')as f:reader=csv.reader(f)head = next(reader)for row in reader:dict[row[0]]=int(row[1])print(dict)# 获取value>7的键值对构成的字典# 从字典中提取符合条件的子集,去除词频小于某一阈值的词语,.items()遍历字典的key以及valuedict = {key: value for key, value in dict.items() if value > 7}print(dict)
#绘制词云#打开作为轮廓的图片,并转为数组
mask = np.array(Image.open('../Photos/map.jpg'))
# 创建词云对象,赋值给w,现在w就表示了一个词云对象,设置参数
wc = WordCloud(font_path='../文悦新青年.otf',#指定字体background_color='black',#背景颜色mask=mask,#mask 指定词云形状图片scale=5,#清晰度max_font_size=2000,min_font_size=20,prefer_horizontal=0.7,#表示在水平如果不合适,就旋转为垂直方向random_state=55)
# 调用词云对象的generate_from_frequencies方法(给定词频画词云图),并将字典数据传入
wc.generate_from_frequencies(dict)
#保存词云图片
wc.to_file('../Photos/map1.png')
#以下代码为实时展示制作的词云图
plt.imshow(wc)
plt.axis('off') #去掉图片的坐标轴
plt.show()

map.jpg

爬取大麦网演出信息保存为CSV文件并制作词云相关推荐

  1. 《结对-爬取大麦网演唱会信息-设计文档》

    结对编程成员:阎大为,张跃馨 搭建环境:  1.安装Python  网址:https://www.python.org/  2.安装Pycharm  网址:http://www.jetbrains.c ...

  2. 结对-爬取大麦网演唱会信息-设计文档

    结对编程成员:阎大为,张跃馨 搭建环境:  1.安装python2.7  2.安装beautifulsoup4等相关模块 编写程序阶段:  1.分析html代码以及了解相关参数  2.写代码,爬取网站 ...

  3. 《结对-爬取大麦网近期演唱会信息-结对项目总结》

    1.项目名称: 爬取大麦网近期演唱会信息 2.主要功能: 爬取大麦网近期演唱会信息并显示 3.开发过程: 1)搭建环境: 下载Python 安装Python 下载PyCharm 安装PyCharm 启 ...

  4. 【Python爬虫】爬取猫眼电影排行榜并存放至csv文件

    在进行本节实战之前,希望您对requests库以及正则表达式有所了解. 运行平台:windows **Python版本: Python3.x ** 一.依赖库的安装 在本节实战之前,请确保已经正确安装 ...

  5. 爬取豆瓣TOP250电影并保存为excel文件与db文件,有网页展示哦!

    任务介绍 想网页效果的小伙伴,可以直接拉到最后!!!哈哈哈!!! 基本流程 在豆瓣上通过F12调试,可以看出我们需要爬取的内容在<div class="item">这里 ...

  6. python如何在循环中保存文件_Python中如何将爬取到的数据循环存入到csv文件中?...

    求大神指导 再此感激不尽!!! 我想要把输出的结果存入到csv文件中 我的代码如下:(Python 需要3.5版本的) # coding:utf-8 import requests import js ...

  7. 爬取豆瓣音乐TOP250数据保存到csv文件和xls文件

    爬取的目标网址:https://music.douban.com/top250 利用lxml库,获取前10页的信息,需要爬取的信息包括歌曲名.表演者.流派.发行时间.评分和评论人数,把这些信息存到cs ...

  8. python爬虫案例分析:爬取肯德基门店地址数据导入csv文件并最终用excel文档呈现

    1.用到的模块: requests pprint csv 2.找到肯德基门店网站进入门店位置页面后,打开抓包工具,找到response中包含所需信息的正确的url信息 3. 导入地址url 4.为防止 ...

  9. 使用python爬取中国电影票房数据并写入csv文件

    环境 PyCharm 2021.1.2 x64 爬取的目标网页 一.代码 import requests from bs4 import BeautifulSoup url = "http: ...

  10. python爬取前程无忧_Python爬取前程无忧网址,并保存为txt文件

    开发工具Python版本:3.6 相关模块: import urllib.request import re 完整代码 import urllib.request import re ''' 遇到不懂 ...

最新文章

  1. CCF CSP 201612-1中位数(满分代码)
  2. OBIEE打补丁教程
  3. 【BCFTOOLS】按样本拆分VCF文件
  4. TDSQL 全时态数据库系统-理念与愿景
  5. 计算机网络主观论述题,《计算机网络》论述题
  6. python操作Oracle数据库
  7. 第七周 linux加载和启动一个可执行程序
  8. MD5 + salt 的加密算法
  9. fianl属性 java_Java反射如何有效的修改final属性值详解
  10. textjoin去重_Excel 2016新增函数之TEXTJOIN
  11. css能不能实现剪切蒙版,CSS中图形剪切、遮罩功能-及使用说明
  12. 显卡compute capability7.5 Python3.5.2环境下编译配置caffe
  13. 计算机进入安全模式,电脑无法进入安全模式怎么办
  14. java如何控制分屏显示,intellij idea 分屏设置 与快捷键
  15. 网络安全——攻防对抗
  16. android. 长图加载
  17. PHP AJAX Promise
  18. HTML5期末大作业:红酒主题——简单的品牌红酒销售网页设计(4页) HTML+CSS+JavaScript 期末大作业HTML代码
  19. 视频格式基础知识:让你了解MKV、MP4、H.265、码率、色深等等.
  20. amd和英伟达运行linux,27款AMD、NVIDIA显卡大战Linux

热门文章

  1. 为什么需要public static void main(String[] agrs)这个方法
  2. linux用ping命令测试网速,如何用ping 命令简单测试网速
  3. 双歧杆菌基因组序列批量下载、基因组注释、antiSMASH合成基因簇挖掘、核心基因的同源性比较。
  4. 计算机专业女生进电网,考入华北电力大学计算机专业,无缘国家电网,这是为什么?...
  5. Python网络爬虫与信息提取(二):网络爬虫之规则(Requests库 Robots规则)
  6. prison break
  7. 用计算器算以2为底的对数
  8. python字典的存储结构_Python 字典的存储结构
  9. Android: Android Studio 的模拟器一些使用问题
  10. 和风OUC-Systeminfo获取客户端基本系统信息