资源简介
爬取京东手机销售与评价数据,以excel表格形式存储,以条形图形式展示不同品牌手机在淘宝的评价人数。可以通过更改关键字手机实现对其他商品的爬取。详细介绍https://blog.csdn.net/weixin_42911616/article/details/81506154
代码片段和文件信息
import requests
import pygal
import re
from xlwt import Workbook
import matplotlib.pyplot as plt
import xlrd
import time
from pylab import mpl
from selenium import webdriver
from bs4 import BeautifulSoup
mpl.rcParams[‘font.sans-serif‘] = [‘FangSong‘] # 指定默认字体
mpl.rcParams[‘axes.unicode_minus‘] = False # 解决保存图像是负号‘-‘显示为方块的问题
def key_name( drivernumber ):
#获取页面的内容并返回
name = ‘手机‘
URL_1 = “https://search.jd.com/Search?keyword=“
URL_2 = “&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=“
URL_3=“&cid2=653&cid3=655&page=“
URL_4 = “&s=1&click=0“
URL = ( URL_1 + name + URL_2 + name + URL_3+ str(number)+URL_4)
#driver = webdriver.Firefox()
#driver.implicitly_wait(3)
driver.get(URL)
# 模拟下滑到底部操作
for i in range(1 5):
driver.execute_script(“window.scrollTo(0 document.body.scrollHeight);“)
time.sleep(1)
# 将加载好的页面源码给bs4解析
soup = BeautifulSoup(driver.page_source “html.parser“)
t=0
# 进行信息的抽取(商品名称,价格)
goods_info = soup.select(“.gl-item“)
#driver.close()
return goods_info
def manipulation_data( goods_info sales_count sheet ):
#解析获取的HTML源码,获取数据并对数据进行解析
count=0
for info in goods_info:
title = info.select(“.p-name.p-name-type-2 a“)[0].text.strip()
price_str = info.select(“.p-price“)[0].text.strip()
count_str = info.select(“.p-commit“)[0].text.strip()
#print (title)
price_start=price_str.find(‘¥‘)+1
price_end=price_str.find(‘.‘)
price=int(price_str[price_start:price_end])
#print (price)
if(count_str.find(‘\n‘))>=0:
count_start=count_str.find(‘\n‘)+1
else:
count_start=0
if(count_str.find(‘万+‘))>=0:
count=float(count_str[count_start:count_str.find(‘万‘)])*10000
elif(count_str.find(‘+‘))>=0:
count=int(count_str[count_start:count_str.find(‘+‘)])
#print(count)
sheet.write(sales_count[‘line‘]0title)
sheet.write(sales_count[‘line‘]1int(price))
sheet.write(sales_count[‘line‘]2int(count))
for key in sales_count.keys():
if str(title).find(‘荣耀‘)>=0:
sales_count[‘华为‘]=sales_count[‘华为‘]+(int(count))
elif str(title).find(‘Apple‘)>=0:
sales_count[‘苹果‘]=sales_count[‘苹果‘]+(int(count))
elif str(title).find(str(key))>=0:
sales_count[key]=sales_count[key]+(int(count))
sales_count[‘line‘]= sales_count[‘line‘] + 1
return sales_count
def show(sales_count):
#按照手机销售量进行排序并绘图(网页版)
sales_count=dict(sorted(sales_count.items()key=lambda d:d[1]reverse=True))
print(‘正在绘制直方图‘)
picture=pygal.Bar()
picture.title=“各大品牌手机评价人数直方图 “
picture.x_labels=sales_count.keys()
sales_count.keys()
picture.x_title=“手机品牌“
picture.y_title=“评价人数“
picture.add(‘淘宝‘sales_count.values())
picture.ren
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5101 2018-08-15 13:16 jingdong.py
相关资源
- Effective Python.pdf
- anaconda下安装tensorflow(注:不同版本
- 一些python自动化代码
- selenium python第三版基础入门教程
- Python Testing with pytest
- 棋盘覆盖图形界面python自带tkinter库实
- #python3.3关于Tk中的Treeview使用方法
- python绝技:运用python成为顶级黑客.
- Python小游戏我自己写的
- Python3.x+Pyqt5实现界面编程浏览网页
- python坐标转换程序
- python新浪微博爬虫,爬取微博和用户
- python凤凰新闻数据分析
- 量化投资:以Python为工具,代码和数
- Python数据可视化编程实战+中文pdf扫描
- 小甲鱼-零基础入门学习Python.pdf
- Python网络爬虫实战.epub
- 离散点-蓝噪声采样python 实现
- FlaskWeb开发:基于Python的Web应用开发实
- 流畅的python超清电子书
- wxPython-demo-4.0.6官方demo
- Python 数据可视化 matplotlib-3.1.1-cp37-c
- 基于python的FMU仿真工具
- Data Science Fundamentals for Python and Mongo
- python 内部培训课件
- 世界矢量地图数据shp格式.rar
- 从Excel到Python-数据分析进阶指南
- Introduction to Python for Science
- Starting Out with Python 4th Global Edition
- 西电数据挖掘作业之利用Python编程实
评论
共有 条评论