资源简介
Python爬取淘宝上所有耐克鞋商品并进行数据分析,有excle,柱状图,饼图,散点图
代码片段和文件信息
# -*- coding: utf-8 -*-
“““
Created on Tue Nov 20 20:56:27 2018
@author: wangf
“““
import re
import time
import requests
import pandas as pd
from retrying import retry
from concurrent.futures import ThreadPoolExecutor
start = time.clock() #计时-开始
#plist 为1-100页的URL的编号num
plist = []
for i in range(1101):
j = 44*(i-1)
plist.append(j)
listno = plist
datatmsp = pd.Dataframe(columns=[])
while True:
@retry(stop_max_attempt_number = 8) #设置最大重试次数
def network_programming(num):
url=‘https://s.taobao.com/search?q=%E8%80%90%E5%85%8B&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170710\
&ie=utf8&sort=sale-desc&style=list&fs=1&filter_tianmao \
=tmall&filter=reserve_price%5B500%2C%5D&bcoffset=0& \
p4ppushleft=%2C44&s=‘ + str(num)
web = requests.get(url headers=headers)
web.encoding = ‘utf-8‘
return web
# 多线程
def multithreading():
number = listno #每次爬取未爬取成功的页
event = []
with ThreadPoolExecutor(max_workers=10) as executor:
for result in executor.map(network_programming
number chunksize=10):
event.append(result)
return event
# 隐藏:修改headers参数
headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) \
AppleWebKit/537.36(KHTML like Gecko) \
Chrome/70.0.3538.102 Safari/537.36‘}
listpg = []
event = multithreading()
for i in event:
json = re.findall(‘“auctions“:(.*?)“recommendAuctions“‘ i.text)
if len(json):
table = pd.read_json(json[0])
datatmsp = pd.concat([datatmsptable]axis=0ignore_index=True)
pg = re.findall(‘“pageNum“:(.*?)“p4pbottom_up“‘i.text)[0]
listpg.append(pg) #记入每一次爬取成功的页码
lists = []
for a in listpg:
b = 44*(int(a)-1)
lists.append(b) #将爬取成功的页码转为url中的num值
listn = listno
listno = [] #将本次爬取失败的页记入列表中 用于循环爬取
for p in listn:
if p not in lists:
listno.append(p)
if len(listno) == 0: #当未爬取页数为0时 终止循环!
break
datatmsp.to_excel(‘datatmsp.xls‘ index=False) #导出数据为Excel
end = time.clock() #计时-结束
print (“爬取完成 用时:“ end - start‘s‘)
‘‘‘
二、数据清洗、处理: (此步骤也可以在Excel中完成 再读入数据)
‘‘‘
datatmsp = pd.read_excel(‘datatmsp.xls‘) #读取爬取的数据
#datatmsp.shape
# 数据缺失值分析: 此模块仅供了解 #见下<图1>
# 安装模块:pip install missingno
import missingno as msno
msno.bar(datatmsp.sample(len(datatmsp))figsize=(104))
# 删除缺失值过半的列: 仅供了解 本例中可以不用
half_count = len(datatmsp)/2
datatmsp = datatmsp.dropna(thresh = half_count axis=1)
# 删除重复行:
datatmsp = datatmsp.drop_duplicates()
‘‘‘
说明:根据需求,本案例中我只取了 item_loc raw_title view_price view_sales 这4列数据,
主要对 标题、区域、价格、销量 进行分析,代码如下:
‘‘‘
# 取出这4列数据:
data = datatmsp[[‘item_loc‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4261888 2018-12-24 21:51 淘宝2\datatmsp.xls
文件 53070 2018-12-24 21:51 淘宝2\Price.xlsx
文件 147454 2018-12-24 19:40 淘宝2\Price_max.xlsx
文件 147176 2018-12-24 21:51 淘宝2\Price_mean.xlsx
文件 147442 2018-12-24 19:40 淘宝2\Price_min.xlsx
文件 118093 2018-11-20 20:55 淘宝2\stopwords.xlsx
文件 66325 2018-12-24 21:51 淘宝2\word_count.xlsx
文件 13078 2018-12-24 19:44 淘宝2\淘宝2.py
目录 0 2018-12-24 21:51 淘宝2
----------- --------- ---------- ----- ----
4954526 9
相关资源
- selenium webdriver (python)第三版.pdf
- python教程python教程
- 笨办法学python 3 第四版 英文
- Python不可见水印隐形水印
- 百度图片器,批量百度图片,输入要
- python3爬虫
- Python Data Analysis Cookbook by Ivan Idris
- Python 3.7.3 中文文档
- wxPython学习手册
- python 实现KML转换为Excel的工具
- 微信公众号第三方平台python完整开发
- 语义分割代码(网盘)
- Python基础教程第三版PDF高清可复制.
- 《深度学习Deep Learning with Python 2017》
- 《机器学习》第2章中候选消除CANDID
- Python编程:从入门到实践高清完整版
- python太空大战游戏 源代码完整版
- Python微信打飞机小游戏
- python实现用户画像
- Test-Driven Development with Python
- Mastering Python Networking
- Learning Data Mining with Python - Second Edit
- Beginning Python: From Novice to Professional
- Python for Everybody: Exploring Data in Python
- Python Projects for Kids
- Qt5 Python GUI Programming Cookbook 无水印原
- 人脸识别算法 python
- Python3实现KNN的三个包含数据集,水果
- 廖雪峰python教程打印版完整版.pdf
- Python项目案例开发从入门到实战源代
评论
共有 条评论