2019独角兽企业重金招聘Python工程师标准>>>

今天给大家分享一个小网站的数据采集,并写到excel里面!

分析网站

目标网站是“小咪购”,这里有天猫所有的含有购物券的商品信息,我们今天就来抓它吧!

随便找一段文字,然后点击右键查看网页源代码,看看是否存在该文字,如果存在,那么这个网页就是静态网站了!很幸运,这个网站居然是静态的。

那就简单了,不需要去分析ajax加载数据或者找json包了,直接获取网页源代码==>>匹配相关内容==>>保存数据即可!

工具和库

Windows+python3.6

import random

import time

import requests

from lxml import etree

import xlwt

用这几个库就可以搞定了!注意xlwt和xlrd这2个库都是操作excel的,一个是保存数据,一个是读取数据,不要搞混了。

开始写代码

首先写一个函数,将所有的爬虫工作写到函数里,如下图

这个网站需要写上headers,不写是抓不到数据的!新建一个列表,将爬到的相关数据写入列表,它的形式大概是这样的:【【产品信息A1,2,3……】,【产品信息B1,2,3……】……】,这么写列表是因为我们最后要将他们写如excel表格,那么列表中的每一个元素(还是列表形式)都是一行数据,方便写入!

注意第33行,列表构成的时候,用+连接会将所有列表中的元素放入一个列表,比如:【1,2,3】+【4,5】=【1,2,3,4,5】,而用append()函数则会将后面的内容作为一个元素加入列表中,比如:[1,2,3].append([4,5])=[1,2,3,[4,5]]

下来就是写入excel了,首先是新建excel表格,并写入第一行数据

wb = xlwt.Workbook(encoding='utf-8')ws = wb.add_sheet('优惠券')path = 'E://python//优惠券.xls'head = ['序号','商品类型','商品名称','优惠券','券后价','在售价','销量','推荐理由','商品链接']for i in range(9):ws.write(0,i,head[i])

后面的数据,依次按格式写入并最后用wb.save(路径)的方式保存即可!完整代码及效果如下

import random
import time
import requests
from lxml import etree
import xlwtdef main(line = 1):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'}url = 'http://www.hlxns.com'html = requests.get(url, headers=headers)html.encoding = 'utf-8'page = etree.HTML(html.text).xpath('//a[@class="item"]/text()')[-1]for i in range(int(line/100)+1, int(page) + 1):k = 1lis = []print('【开始下载】第%d页数据'%i)htm = requests.get(url + '/index.php?r=l&page={}'.format(str(i)), headers=headers)htm.encoding = 'utf-8'data = etree.HTML(htm.text)url_sps = data.xpath('//div[@class="title"]/a/@href')for url_sp in url_sps:#一页100条time.sleep(random.random()*2)print('      【正在下载】第%03d页第%03d条商品数据'%(i,k),end='')k += 1html_sp = requests.get(url + url_sp, headers=headers)html_sp.encoding = 'utf-8'info = etree.HTML(html_sp.text)title = info.xpath('//span[@class="title"]/text()')  # 产品summary = [x.replace('推荐理由:','') for x in  info.xpath('//span[@class="theme-color-3"]/text()')]  # 推荐理由category = info.xpath('//div[@class="nav-wrap"]/div/a[3]/text()')  # 类别now_price = info.xpath('//span[@class="now-price"]/b[2]/i/text()')  # 券后价old_price = info.xpath('//span[@class="org-price"]/i/text()')  # 在售价nums = info.xpath('//div[@class="text-wrap"]/span[2]/i/text()')  # 销量coupon = info.xpath('//div[@class="buy-coupon theme-color-8"]/span/b/text()')  # 优惠券sp_url = info.xpath('//a[@class="theme-bg-color-8"]/@href')  # 链接lis.append(category+title+coupon+now_price+old_price+nums+summary+sp_url)print('................................【下载完成】')print('######第%d页数据   【下载完成】'%i)for ii in range(len(lis)):lis[ii].insert(0, line)  # 添加序号for j in range(9):  # 列ws.write(line, j, lis[ii][j])line += 1print('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>【写入本页数据完成】<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<')wb.save(path)
if __name__ == '__main__':wb = xlwt.Workbook(encoding='utf-8')ws = wb.add_sheet('优惠券')path = 'E://python//优惠券.xls'head = ['序号','商品类型','商品名称','优惠券','券后价','在售价','销量','推荐理由','商品链接']for i in range(9):ws.write(0,i,head[i])main()

由于网站更新的很快(官方说是10分钟。。。),所以也没有抓取那么多,所有的页面有大约600多页,一页100条信息,也就是说一共有6万多条商品信息,如果不用多线程的话会很慢!

转载于:https://my.oschina.net/u/3873244/blog/1862172

python简单应用!用爬虫来采集天猫所有优惠券信息,写入本地文件相关推荐

  1. 基于Python实现的网络爬虫项目——多线程下载小说并保存为txt文件(包含完整代码及注释)

    基于Python实现的网络爬虫项目--多线程下载小说并保存为txt文件(包含完整代码及注释) 一.确立预期目标 二.完成项目所需工具 三.项目需要解决的问题 问题一 问题二 问题三 问题四 问题五 问 ...

  2. Crawler之Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息

    Crawler之Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 import scrapy class Dmoz ...

  3. python爬虫多url_Python爬虫抓取多个URL写入本地文件

    Python爬虫抓取多个URL写入本地文件!1. Pycharm中运行Scrapy windows环境下cmd中通过scrapy startproject 项目名,创建scrapy项目 修改Run-中 ...

  4. python读取日志错误信息_使用Python将Exception异常错误堆栈信息写入日志文件

    假设需要把发生异常错误的信息写入到log.txt日志文件中去: import traceback import logging logging.basicConfig(filename='log.tx ...

  5. python把异常写入文件_使用Python将Exception异常错误堆栈信息写入日志文件代码

    本篇文章小编给大家分享一下使用Python将Exception异常错误堆栈信息写入日志文件代码及补充知识,对大家的学习有一定的帮助,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看 ...

  6. 如何使用爬虫采集天猫店铺商品信息

    大数据时代必备技能 - 神箭手云爬虫 -一站式云端通用爬虫开发平台 神箭手云爬虫多样化采集网页内容,快速产生大量而优质的内容. 1.打开神箭手云爬虫官网 2.创建爬虫任务 (1) 在首页点击" ...

  7. python简单实现网络爬虫

    前言 在这一篇博客中,我会用python来实现一个简单的网络爬虫.简单的爬取一下一些音乐网站.小说网站的标题.关键字还有摘要!所以这个爬虫并不是万能爬,只针对符合特定规则的网站使用.(只使用于爬标题. ...

  8. python的excell库_Python中使用第三方库xlrd来写入Excel文件示例

    继上一篇文章使用xlrd来读Excel之后,这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表示write x ...

  9. python 简单网页_Python爬虫 (一):爬取一个简单的静态网页

    版本:python3.7 平台:windows10 工具 :pycharm 断断续续学习了py3爬虫2周左右的时间,发现自己学习的过于零散化,所以想通过这个专栏系统的整理下自己所学过的知识.如有错误, ...

最新文章

  1. Python 循环控制语句-break/continue
  2. Linux服务-FTP文件服务器部署
  3. 微信小程序错误监控方法谈
  4. 文件被后台程序占用无法删除_win10重装后系统占用50G?只要做好这2步,运行比win7还快...
  5. 全国计算机证件照要露耳朵吗,结婚证照片要露耳朵么 结婚登记照露一只耳朵行吗...
  6. django 1.8 官方文档翻译: 3-3-3 文件储存API
  7. Python导入标准库和扩展库对象的几种方式
  8. 平方根升余弦滚降滤波器matlab函数,平方根升余弦滚降数字滤波器的设计和实现.pdf...
  9. 最先进的语义搜索句子相似度计算
  10. odbc监控oracle,在zabbix下面使用ODBC 监控oracle数据库(11.2.0.3)和mysql数据库
  11. dotcms open source java cms_开放源Java(JSP)CMS系统的推荐源代码
  12. win10计算机磁盘图标,电脑win10系统磁盘分区ioc图标修改技巧
  13. ppspp android编译,PPSSPP模拟器通用设置,伪福利
  14. 段子界“鼻祖”将关闭服务,它提高了一代人的笑点
  15. 2017 百度之星 复赛 Valley Numer(数位dp)
  16. 金蝶云苍穹集成,苍穹到eas审核反审核
  17. 【海大838】22年考研真题及解析
  18. 投资欢喜传媒的B站,有着怎样的内容焦虑?
  19. 三度进击IPO,诚达药业为何如此执着?
  20. 计算机组成原理算术逻辑实验,《计算机组成原理》算术逻辑运算实验报告.doc...

热门文章

  1. TDA4VM中各个CPU对应的名字
  2. RabbitMQ核心功能介绍
  3. 程序员怎么才能让自己走得更高、更远?
  4. 显示前半内容后半内容用省略号_2015年广东中考满分作文赏析:特别的一朵花_1500字...
  5. 单片机定时器0,TH0和TL0初值的计算
  6. 中国大学MOOC-陈越、何钦铭-数据结构
  7. 潮汐监测站点 api数据接口
  8. 使用U盘win10家庭版本系统重装
  9. 背着房贷被裁员是一种什么样的体验?
  10. 嵌入式_cpu微架构、互连结构与总线