资源简介
python爬虫,并将数据进行可视化分析,数据可视化包含饼图、柱状图、漏斗图、词云、另附源代码和报告书。
代码片段和文件信息
import tkinter as tk
import time
from tkinter import *
from tkinter import messagebox
import string
import pickle
import random
import requests
from bs4 import BeautifulSoup
import os
import jieba
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Funnel
from pyecharts.charts import Page WordCloud
from pyecharts import options as opts
from pyecharts.globals import SymbolType
from pyecharts.globals import ThemeType
headers = {
‘Upgrade-Insecure-Requests‘: ‘1‘
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/72.0.3626.119 Safari/537.36‘
‘Accept-Encoding‘: ‘gzip deflate‘
‘Accept-Language‘: ‘zh-CNzh;q=0.9en;q=0.8‘
‘Cache-Control‘: ‘no-cache‘
‘Connection‘: ‘keep-alive‘
‘Host‘: ‘search.dangdang.com‘
}
def parseHtml(html):
data = {}
#print(html)
soup = BeautifulSoup(html ‘lxml‘)
conshoplist = soup.find_all(‘div‘ {‘class‘: ‘con shoplist‘})[0]
for each in conshoplist.find_all(‘li‘):
# 书名
bookname = each.find_all(‘a‘)[0].get(‘title‘).strip(‘ ‘)
# 书图
img_src = each.find_all(‘a‘)[0].img.get(‘data-original‘)
if img_src is None:
img_src = each.find_all(‘a‘)[0].img.get(‘src‘)
img_src = img_src.strip(‘ ‘)
# 价格
price = float(each.find_all(‘p‘ {‘class‘: ‘price‘})[0].span.text[1:])
# 简介
detail = each.find_all(‘p‘ {‘class‘: ‘detail‘})[0].text
# 评分
stars = float(each.find_all(‘p‘ {‘class‘: ‘search_star_line‘})[0].span.span.get(‘style‘).split(‘: ‘)[-1].strip(‘%;‘)) / 20
# 评论数量
num_comments = float(each.find_all(‘p‘ {‘class‘: ‘search_star_line‘})[0].a.text[:-3])
data[bookname] = [img_src price detail stars num_comments]
return data
def create():
global keyword
global num_page
keyword = text_var.get()
top = Toplevel()
top.title(‘Python‘)
#top.geometry(‘850x150‘)
img1 = tk.PhotoImage(file=“bg.gif“)
v = tk.StringVar()
label_1 = tk.Label(top textvariable=v fg=“red“ bg=“black“ font=(“黑体“ 20))
label_1.pack()
url = ‘http://search.dangdang.com/?key={}&act=input&page_index={}‘
results = {}
cnt = 0
num_page = 0
while True:
cnt += 1
if cnt > 5:
break
num_page += 1
v.set(‘[INFO]: Start to get the data of page%d...‘ % num_page)
label_1.update()
time.sleep(3)
page_url = url.format(keyword num_page)
res = requests.get(page_url headers=headers)
if ‘抱歉,没有找到与“%s”相关的商品,建议适当减少筛选条件‘ % keyword in res.text:
break
page_data = parseHtml(res.text)
results.update(page_data)
messagebox.showinfo( “Python爬虫“ “爬虫已完成“)
with open(‘%s_%d.pkl‘ % (keyword num_page-1) ‘wb‘) as f:
pickle.dump(results f)
labe
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9723 2020-06-12 15:28 python代码\Reptile+Pyecharts.py
文件 270140 2019-12-29 21:00 python代码\bg.gif
文件 96863 2019-12-30 15:07 python代码\nyist.gif
文件 2476375 2020-06-12 15:35 python代码\python数据可视化分析大作业.docx
文件 20270 2019-12-22 18:17 python代码\stopwords.txt
目录 0 2020-06-12 15:35 python代码\
相关资源
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 一个多线程智能爬虫,爬取网站小说
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- 顶点小说单本书爬虫.py
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
- 量化交易(附python常见函数的使用方
- python 名字用字排行
- Python串口通信(pyserial)
- python读取nfc卡
评论
共有 条评论