出于某些原因,想调戏下天猫的反爬虫机制,于是就有了这篇记录

源码已传osgit ,感兴趣可以戳下

正文开始

分析目标(items) 解析路径(xpath)

目标为天猫超市的进口商品区

研究一下待抓取网页中, 需要爬的内容,如下图

我的目标是 商品名、销量、价格,图当然也是可以爬的,不过本次不爬

新建爬虫【处理items,pipelines,settings,spider】

首先新建一个爬虫,起个喜欢或者任性的名字

scrapy startproject tmail

更改下级目录中的 **items.py **

我依据网站上的起名添加了 titile,sold(sum是保留字),price

更改pipelines.py和settings.py中的内容(当然也可以先创小蜘蛛啦)

因为爬的都是字符,就直接保存为json文件(下图为初版,后遇到问题有更改)

在setting.py中添加download_delay和 item_pipelines

DOWNLOAD_DELAY = 3

ITEM_PIPELINES = {

'tmail.pipelines.TmailPipeline' : 300,

}

事实上我还加了COOKIES_ENABLED = False,后来证明。。是傻,见后文

接下来就是愉快得整蜘蛛了

在spiders文件夹中新建一个xxx.py (我的是tmailspider.py),打开之

加 name(运行爬虫时用) ,allowed_domains (域名),

start_url(必需吐槽下天猫的后缀在下个菜鸡看不懂,并且用虚拟机开的不一样,不过都能用就是了,我的 在图中隐藏了部分,各位喜欢自己开个就好)

分析目标xpath,加parse方法 下图为最初版

试运行,处理bug【robots.txt,更改useragent(无用),重定向302错误】

嗯 接下来 我就运行了 scrapy crawl tmail.com

结果如图 我被robots.txt文件挡住了

看来不能优雅了,第一次更改 settings.py 中 加/改 ROBOTSTXT_OBEY = False

改完后,来我们看看结果

重定向302??这是什么鬼 ?看出我是用爬虫了 ?

没事,前两天才学了改请求头,我加个变化的useragent试试 (这个可以看看我的上一篇博客)

改useragent

然并卵,它报同样!的!错!

好吧,老实上网搜,

分析cookies

网上并没有详细方法,只有几个朋友提供的分析cookies的思路

然而我并不会,于是就找到一篇对我接下来的修改起很大作用的文章 Scrapy用Cookie实现模拟登录

方法如下:

登录了自己的天猫,用ctrl + shift + i 快捷键打开工具,在network下找到需要的cookie(真 好长一串)

拿到cookie后需要处理成``` 'xxx' : 'xxxx',

2. 重载spider内方法start_requests(注意:此时start_urls已废,我保留它仅为了保存原网址)

![start_request1](https://static.oschina.net/uploads/img/201609/02170927_V4Zi.png "重写1")

3. 中间是很长的cookies,因为start_urls没有默认功能了,所以要重新加上调用方法parse

![start_request2](https://static.oschina.net/uploads/img/201609/02170858_kQ4B.png "重写2")

4. (自作孽之)记得把settings.py中的 COOKIES_ENABLED = False 改为

COOKIES_ENABLED = True //默认为True

到此就可以正常爬取了,还有最后一个问题 输出中文乱码

### 解决中文乱码

这个我算是暴力解决了,在 tmailspider.py和pipelines.py 中加入

import sys reload(sys) sys.setdefaultencoding('utf-8')

然后输出变为unicode,于是在pipeline里加了

line.decode('unicode-escape')

### 收尾工作(输出好看点以及实现爬取下一页)

由于单网页有多个item,于是我改写了爬虫的parse函数,可以单个输出,下图为改善版

![parse](https://static.oschina.net/uploads/img/201609/02173204_pBoq.png "parse改善版")

上面所完成的爬虫只能爬单个网页,那怎么够,于是又去分析网页内地址

![page](https://static.oschina.net/uploads/img/201609/02173600_DJbf.png "page-next")

可以看出网址很烦,一开始想用正则来表达网址,结果嫌麻烦放弃了,我看中了上图最后一条,下一页的网址,哈哈,用xpath分析获得很容易,于是最终版的parse函数如下

![parse最终](https://static.oschina.net/uploads/img/201609/02173930_AkMl.png "parse最终版")

php 爬虫 超市,scrapy爬虫 爬取天猫进口零食网页相关推荐

  1. scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...

  2. 19. python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...

  3. python爬虫——用Scrapy框架爬取阳光电影的所有电影

    python爬虫--用Scrapy框架爬取阳光电影的所有电影 1.附上效果图 2.阳光电影网址http://www.ygdy8.net/index.html 3.先写好开始的网址 name = 'yg ...

  4. 爬虫之Scrapy框架爬取彼岸壁纸案例分享

    爬虫之Scrapy框架爬取彼岸壁纸案例分享 前段时间在网上看到有人爬取了彼岸壁纸的案例,由于爬取的图片较多,爬取速度感觉不快,所以就自己写了个Scrapy框架,个人觉得爬取速度快多了. 代码如下. 文 ...

  5. 14. python爬虫——基于scrapy框架爬取糗事百科上的段子内容

    python爬虫--基于scrapy框架爬取糗事百科上的段子内容 1.需求 2.分析及实现 3.实现效果 4.进行持久化存储 (1)基于终端指令 (2)基于管道 [前置知识]python爬虫--scr ...

  6. Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  7. 爬虫:Scrapy分类爬取苏宁易购书城

     目录 1.scrapy框架概述 2.Scrapy爬取苏宁图书案例 3.设置配置文件 ​ 4.如何获取USER_AGENT ​ 5.编写items.py文件 6.编写爬虫suning.py程序 1.s ...

  8. 【python 爬虫】 scrapy 入门--爬取百度新闻排行榜

    scrapy 入门–爬取百度新闻排行榜 环境要求:python2/3(anaconda)scrapy库 开发环境:sublime text + windows cmd 下载scrapy(需要pytho ...

  9. python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战

    先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...

最新文章

  1. Swift for循环:用于索引,数组中的元素?
  2. NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术
  3. 牛客题霸 [括号序列] C++题解/答案
  4. 11. 盛最多水的容器 golang
  5. redis value最大值_Redis从入门到深入-String的value
  6. devops 开源_没有开源就无法拥有DevOps
  7. Golang实践录:使用gin框架实现转发功能:利用nginx转发
  8. 在eclipse中引入jquery.js文件报错的解决方案
  9. onepill Android端
  10. Dynamics CRM - 不同类型字段在 Plugin 里的赋值方式
  11. Reactive MySQL Client
  12. delphi xe3 oracle,delphixe3
  13. FFmpeg获取视频正确的宽高比
  14. 酷开系统AI智能让生活更简单化
  15. C++之vector<int> nums
  16. 设计模式(二) 访问者模式 Vistor
  17. 墙裂推荐6本适用于所有Java程序员阅读书籍
  18. 为什么有的公司会规定所有接口都用 POST请求?
  19. 学习大数据要掌握哪些语言?哪些必备知识和技能呢?
  20. win10新建虚拟机网络配置未连接服务器,win10虚拟主机怎么联网(win10虚拟机连不上网)...

热门文章

  1. 上海居住证办理(闵行)
  2. android线刷软件,android线刷一般用什么软件?哪一个好用一些?
  3. 30.Android调试-连接夜深模拟器
  4. 赞!原来还有这些免费图片下载网站(内附部分爬虫代码)
  5. 学编程的人那么多,到底编程的出路在哪?
  6. uniapp 基础知识学习
  7. sv package
  8. 【HDOJ】4043 FXTZ II
  9. 深度学习入门笔记(七):深层神经网络
  10. 百度云管家 提取下载链接(已过时,仅用作存档)