php 爬虫 超市,scrapy爬虫 爬取天猫进口零食网页
出于某些原因,想调戏下天猫的反爬虫机制,于是就有了这篇记录
源码已传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爬虫 爬取天猫进口零食网页相关推荐
- scrapy获取a标签的连接_python爬虫——基于scrapy框架爬取网易新闻内容
python爬虫--基于scrapy框架爬取网易新闻内容 1.需求[前期准备] 2.分析及代码实现(1)获取五大板块详情页url(2)解析每个板块(3)解析每个模块里的标题中详情页信息 点击此处,获取 ...
- 19. python爬虫——基于scrapy框架爬取网易新闻内容
python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...
- python爬虫——用Scrapy框架爬取阳光电影的所有电影
python爬虫--用Scrapy框架爬取阳光电影的所有电影 1.附上效果图 2.阳光电影网址http://www.ygdy8.net/index.html 3.先写好开始的网址 name = 'yg ...
- 爬虫之Scrapy框架爬取彼岸壁纸案例分享
爬虫之Scrapy框架爬取彼岸壁纸案例分享 前段时间在网上看到有人爬取了彼岸壁纸的案例,由于爬取的图片较多,爬取速度感觉不快,所以就自己写了个Scrapy框架,个人觉得爬取速度快多了. 代码如下. 文 ...
- 14. python爬虫——基于scrapy框架爬取糗事百科上的段子内容
python爬虫--基于scrapy框架爬取糗事百科上的段子内容 1.需求 2.分析及实现 3.实现效果 4.进行持久化存储 (1)基于终端指令 (2)基于管道 [前置知识]python爬虫--scr ...
- Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息
由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...
- 爬虫:Scrapy分类爬取苏宁易购书城
目录 1.scrapy框架概述 2.Scrapy爬取苏宁图书案例 3.设置配置文件 4.如何获取USER_AGENT 5.编写items.py文件 6.编写爬虫suning.py程序 1.s ...
- 【python 爬虫】 scrapy 入门--爬取百度新闻排行榜
scrapy 入门–爬取百度新闻排行榜 环境要求:python2/3(anaconda)scrapy库 开发环境:sublime text + windows cmd 下载scrapy(需要pytho ...
- python爬虫利用Scrapy框架爬取汽车之家奔驰图片--实战
先看一下利用scrapy框架爬取汽车之家奔驰A级的效果图 1)进入cmd命令模式下,进入想要存取爬虫代码的文件,我这里是进入e盘下的python_spider文件夹内 C:\Users\15538&g ...
最新文章
- Swift for循环:用于索引,数组中的元素?
- NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术
- 牛客题霸 [括号序列] C++题解/答案
- 11. 盛最多水的容器 golang
- redis value最大值_Redis从入门到深入-String的value
- devops 开源_没有开源就无法拥有DevOps
- Golang实践录:使用gin框架实现转发功能:利用nginx转发
- 在eclipse中引入jquery.js文件报错的解决方案
- onepill Android端
- Dynamics CRM - 不同类型字段在 Plugin 里的赋值方式
- Reactive MySQL Client
- delphi xe3 oracle,delphixe3
- FFmpeg获取视频正确的宽高比
- 酷开系统AI智能让生活更简单化
- C++之vector<int> nums
- 设计模式(二) 访问者模式 Vistor
- 墙裂推荐6本适用于所有Java程序员阅读书籍
- 为什么有的公司会规定所有接口都用 POST请求?
- 学习大数据要掌握哪些语言?哪些必备知识和技能呢?
- win10新建虚拟机网络配置未连接服务器,win10虚拟主机怎么联网(win10虚拟机连不上网)...