PythonSpider---爬取淘宝店铺信息并导入excel-阿里云开发者社区

开发者社区> wayne_dream> 正文

PythonSpider---爬取淘宝店铺信息并导入excel

简介: 挺久没更新简书了,之前一直在忙机器视觉的开题报告,现在又要期末复习,射频通信,信号处理看的脑阔疼,所以决定写个简单点的爬虫,放松下,换个环境,也顺便巩固下爬虫。
+关注继续查看

挺久没更新简书了,之前一直在忙机器视觉的开题报告,现在又要期末复习,射频通信,信号处理看的脑阔疼,所以决定写个简单点的爬虫,放松下,换个环境,也顺便巩固下爬虫。


img_24b787a69dde4429cc2429c6b2d004cb.png
图片来自网络

0.运行环境

  • Python3.6.5
  • Pycharm
  • win10

1.爬虫思维框架

img_3b77da88d193c6cb488730f4001ccf11.png
框架

1:从上图中可以看出本次爬虫所用到的库,其中xlsxwriter库是用来制作excel表格存储数据的,剩余两个库就不用多说了,爬虫必备库,你一定接触过。
官方xlsxwriter解释
CSDN博主的精简版
2:分四个步骤完成,详见上图框架。
3:爬取的淘宝页面

img_99dd727184ed0c0d0419dc887acd06cf.png
本次所要爬取的信息


2.可能遇到的问题及解决方案

  • Q1,无法获取网页源代码,得到的text总是为空?
    A1,必须在headers中加入cookie和user-agent,缺一不可。
  • Q2,使用beautifulsoup库好还是直接正则表达式RE好?
    A2,对于本次爬虫还是正则表达式好,做了就知道了。==!
  • Q3,如何爬取多个页面的信息?
    A3,仔细观察多个页面的URL有何区别,本次的URL最后,第一页是0,第二页是20,第三页是40,找规律便可取得所有页面的URL。
  • Q4,我还有其他疑问怎么办?
    A4,在评论区提出,博主会第一时间回复你的哦!

3.完整代码

import requests
import re
import xlsxwriter

def getUrl(page):   # page为[0,10]内的整数
    part1 = 'https://shopsearch.taobao.com/search?app=shopsearch&spm=a230r.7195193.0.0.45xMl6&q=%E9%A3%9F%E5%93%81&tracelog=shopsearchnoqcat&s='
    list = []
    for a in range(0, page):
        part2 = '{}'.format(20*a)
        url = part1 + part2
        list.append(url)
    return list
def getHtmlText(url):
    try:
        headers = {
            隐藏,因为每个人都不一样,可通过F12获取,具体方法自行百度
            Cookie 和 User-Agent必须要
        }
        res = requests.get(url, headers=headers, timeout=30)
        res.raise_for_status()
        res.encoding = res.apparent_encoding
        # time.sleep(1)
        return res.text
    except:
        return '网络异常'
def getTaobaoData(text):
    NAME = re.findall('"nick":"(.*?)"', text)
    PLACE = re.findall('"provcity":"(.*?)"', text)
    Totalsold = re.findall('"totalsold":(.*?),', text)
    Procnt = re.findall('"procnt":(.*?),', text)
    return NAME, PLACE, Totalsold, Procnt

def main(page):
    num = 0
    List = getUrl(page)
    TaobaoData = xlsxwriter.Workbook('E:\\taobaodata.xlsx')
    StoresData = TaobaoData.add_worksheet()
    title = [u'店铺', u'地址', u'销量', u'产品数']
    StoresData.write_row('A1', title)
    StoresData.set_column('A:D', 25)
    for URL in List:
        Text = getHtmlText(URL)
        name, place, totalsold, procnt = getTaobaoData(Text)
        StoresData.write_column(1+20*num, 0, name)
        StoresData.write_column(1+20*num, 1, place)
        StoresData.write_column(1+20*num, 2, totalsold)
        StoresData.write_column(1+20*num, 3, procnt)
        num += 1
        if not name:
            print('第{}页爬取失败'.format(num))
        else:
            print('第{}页爬取成功'.format(num))
    TaobaoData.close()

if __name__ == '__main__':
    a = input('请输入需要爬取的页数(建议小于10):')
    main(int(a))

4.实现效果

img_7281469524c6c3be4422a6cb5ad1fd29.png
Excel

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10018 0
重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop
原文:重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop [源码下载] 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, ...
712 0
浅析图数据库 Nebula Graph 数据导入工具——Spark Writer
本文主要讲解 Nebula Graph 基于 Spark 的分布式数据导入工具—— Spark Writer,它基于 DataFrame 实现,能够将多种数据源中的数据转化为图的点和边批量导入到图数据库中
306 0
iphone的系统信息使用[UIDevice currentDevice]
<p style="line-height:28px; margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:宋体; font-size:16px; border-width:0px; list-style:none"> 获取ipho
1120 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13821 0
SAP MM 由于没有维护工厂的地址信息导致不能在ME51N和ME21N界面里输入工厂代码
SAP MM 由于没有维护Plant的Address信息导致不能在ME51N和ME21N界面里输入工厂代码 ME21N,视图创建采购订单,输入了Plant code 3600,   回车, Plant字段值被自动清空。
1263 0
从密码与加密的角度探讨保护信息安全的基本常识
现代社会,很多重要数据都存储在计算机中,这些信息在互联网上的任何角落都有被其他人窃听、篡改、假冒的可能,如何保护这些信息的安全已经成为互联网时代我们面临的严重威胁之一。今天,我们从密码与加密的角度来探讨一下保护信息安全的一些基本常识。
693 0
+关注
wayne_dream
努力,努力,再努力
33
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载