记大数据可视化课程作业爬取信息的方法!
1.前期准备
- 爬虫的对象:多媒体数字报纸
- 对象说明:因为课程作业我需要的是每个省份对应的报刊内容,所以我只是爬取了一些报刊的信息,写入Excel文件,作为可视化对象,如下图所示(大家可以根据需要去爬取想要的数据,代码代码基本只变动soup的find方法即可)
- 可视化:使用了pyecharts库进行可视化展示数据
2.爬虫代码
- 下面上代码!
import requests as rq
import xlwt as xlwt
from bs4 import BeautifulSoup
if __name__ == '__main__':
url = "http://www.53bk.com/site/"
r = rq.get(url)
soup = BeautifulSoup(r.text, 'lxml')
titles = soup.find_all("a")
journals = []
for title in titles:
print(title)
journals.append(title.string)
print(journals[21:])
filename = 'journalList.csv'
book = xlwt.Workbook(encoding='uft-8')
sheet = book.add_sheet('list', cell_overwrite_ok=True)
sheet.write(0, 0, u'journalList')
i = 1
while i < len(journals):
# journal = journals[i-1]
sheet.write(i, 0, journals[i - 1])
i += 1
book.save(filename)
3.可视化结果与代码
下面是可视化的代码:
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Pie as Pie
from pyecharts.globals import ThemeType
#%%
# 省份报刊分布
v = ['北京市','上海市','天津市','重庆市','河北省','山西省','内蒙古自治区','辽宁省','吉林省','黑龙江省','江苏省','浙江省','安徽省','福建省','江西省','山东省','河南省','湖北省','湖南省','广东省','广西壮族自治区','海南省','四川省','贵州省','云南省','西藏自治区','陕西省','甘肃省','青海省','宁夏回族自治区','新疆维吾尔自治区','台湾省','香港特别行政区','澳门特别行政区']
data = [118,32,8,13,30,22,8,23,13,12,47,70,23,28,14,46,47,38,32,50,21,9,43,13,13,7,29,17,7,9,11,8,9,4] #报刊数量
#%%
c1 = (
Pie(init_opts=opts.InitOpts(theme=ThemeType.WESTEROS,width='1500px', height='1200px'))
.add(
"",
[list(z) for z in zip(v, data)],
radius=["30%", "75%"],
center=["50%", "50%"],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=False,position='bottom'),
)
# .set_global_opts(legend_opts=opts.LegendOpts(is_show=True,pos_bottom='100%'))
.set_series_opts(label_opts = opts.LabelOpts(formatter="{b}:{c}"))
.set_global_opts(title_opts=opts.TitleOpts(title="省份报刊分布\n"),
legend_opts=opts.LegendOpts(
pos_bottom = '5%',
))
.render("../pic_html/pie_rosetype.html")
)