pyspider 爬取淘宝食品
1. 前言
牛课网在组织一个编程之美的活动, 这次的题目是 http://www.nowcoder.com/discuss/18223?type=0&order=0&pos=2&page=1
正好是使用爬虫进行操作的。就想到使用pyspider写一下了。
pyspider的相关资料:
http://docs.pyspider.org/en/latest/tutorial/
2. 实现流程
2.1 分析网页
我们的目标站点是 https://chi.taobao.com
根据这个信息,我们可以非常方便的解析出相应商品的各种信息, 然而并不是这样, 商品的数据都是通过json异步加载出来的。
从网页源码来看, 根本提取不到任何有用信息
这个是没有加载上json数据时候的基本情况
通过chrome强大的监控功能,我们找到了请求的数据
得到数据源之后, 处理就比较方便了
2.2 参考资料及其记录
- windows 上 pyspider 出现各种莫名其妙的问题, 建议使用 linux
- Python Objects与String之间转换 : http://blog.sina.com.cn/s/blog_4ddef8f80102v8af.html
- mysqldb 使用 http://blog.csdn.net/zhyh1435589631/article/details/51544903
- pyspider 属性 https://pythonhosted.org/pyquery/attributes.html
- mysqldb 安装出错: http://stackoverflow.com/questions/5178292/pip-install-mysql-python-fails-with-environmenterror-mysql-config-not-found
- pyspider 解析json https://segmentfault.com/a/1190000002477870
2.3 数据库相关
2.4 实现代码
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2016-11-05 23:18:55
# Project: taobao_foodfrom pyspider.libs.base_handler import *
import re
import json
import MySQLdbclass Handler(BaseHandler):# 数据库链接配置def __init__(self):db_host= "127.0.0.1"user= "root"passwd="zhyh2010"db="taobao_food"charset="utf8"conn = MySQLdb.connect(host=db_host, user = user, passwd=passwd, db=db, charset=charset)conn.autocommit(True)self.db=conn.cursor()# 爬虫的起始url@every(minutes=24 * 60)def on_start(self):self.crawl('https://tce.taobao.com/api/mget.htm?callback=jsonp221&tce_sid=659631&tce_vid=8,2&tid=,&tab=,&topic=,&count=,&env=online,online',callback=self.json_parser)# 解析相应的 json 数据 @config(age=24 * 60 * 60)def select_json(self, response):content = response.textpattern = re.compile('window.jsonp.*?\((.*?)\)', re.S)content_select = re.findall(pattern, content)return content_select[0].strip()# 提取相应数据 插入数据库表中def product_info(self, response):for data in response["result"]: res = {"item_pic": "https:" + data["item_pic"],"item_youhui_price": data["item_youhui_price"],"item_title": data["item_title"]} sql ="insert into food_info(url, price, title) values (%s,%s,%s)" values = [(res["item_pic"], res["item_youhui_price"], res["item_title"])]self.db.executemany(sql, values)# 解析 json @config(age=24 * 60 * 60)def json_parser(self, response):content = self.select_json(response)contents = json.loads(content)subres = contents["result"]for each in contents["result"]:info = self.product_info(subres[each])
3. 效果
pyspider 爬取淘宝食品相关推荐
- Scrapy-Splash爬取淘宝排行榜(二)
四 开始爬取 1.首先分析淘宝排行榜的设置.在这里,商品被分为服饰,数码家电,化妆品,母婴,食品,文体,家具,车|玩具|宠物.而点开每个大类,又可以看到商品被分为很多小类.点开任意小类,往下拉就可以看 ...
- Scrapy-Splash爬取淘宝排行榜(一)
一 引言 日前,自己因项目需要需要爬取淘宝排行榜,而淘宝因为用了很多的AJAX技术,不能用普通的爬虫爬取,于是我这里就想用如一些集成了PhantomJS或类似的python爬虫框架.一开始自己尝试了p ...
- python爬虫学习(三):使用re库爬取淘宝商品,并把结果写进txt文件
第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字"python",然后搜索,显示如下搜索结果 从url连接中可以得 ...
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品
在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...
- 利用Selenium爬取淘宝商品信息
文章来源:公众号-智能化IT系统. 一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...
- 爬取淘宝定价需要多久时间_如何对设计工作进行定价—停止收取时间并专注于价值
爬取淘宝定价需要多久时间 Pricing creative work is a new concept for most freelancers who are starting their busi ...
- 爬取淘宝商品信息selenium+pyquery+mongodb
''' 爬取淘宝商品信息,通过selenium获得渲染后的源码,pyquery解析,mongodb存储 '''from selenium import webdriver from selenium. ...
- python爬虫淘宝手机_【Python3 爬虫】14_爬取淘宝上的手机图片
现在我们想要使用爬虫爬取淘宝上的手机图片,那么该如何爬取呢?该做些什么准备工作呢? 首先,我们需要分析网页,先看看网页有哪些规律 我们可以看到左侧是主题市场,将鼠标移动到[女装/男装/内衣]这一栏目, ...
- Python爬虫实战03:用Selenium模拟浏览器爬取淘宝美食
1 目标站点分析 淘宝页面信息很复杂的,含有各种请求参数和加密参数,如果直接请求或者分析Ajax请求的话会很繁琐.所以我们可以用Selenium来驱动浏览器模拟点击来爬取淘宝的信息.这样我们只要关系操 ...
- python词云代码手机_【云计算】爬取淘宝手机品牌词云分析(python)
本文主要向大家介绍了[云计算]爬取淘宝手机品牌词云分析(python),通过具体的内容向大家展现,希望对大家学习云计算有所帮助. 淘宝手机信息的爬取,请看这边博客(点击这里),然后我们利用其中保存的文 ...
最新文章
- jQuery浏览器类型判断和分辨率判断
- php mysql 图像_php-向/从MySQL数据库插入/查看图像
- NodeMedia / NodeMediaClient-Android(一个简单,快速,免费的直播SDK)
- 视觉SLAM——稀疏光流法
- 句句真研—每日长难句打卡Day5
- mac的word中添加带圆圈的数字
- 让工程师拥有一台“超级”计算机——字节跳动客户端编译加速方案
- J2EE学习篇之--Struts1详解
- OSChina 周日乱弹 ——朕与先生解战袍,芙蓉帐暖度春宵
- 【Raspberry Pi】搭建NAS流媒体播放器 + ARIA2 + YAAW + 迅雷下载系统
- 2019年云计算发展趋势,今年十大云计算趋势
- 10G整数中寻找中位数
- cyusb3014上位机同步传输与异步传输的实现
- 未名企鹅极客 | 人机图灵测试中数字图像处理方法研究
- java 将数据生成word文档,并实现打勾选择框
- Word里面文字怎么修改字体
- 百度地图JavaScript API GL1.0给折线添加箭头
- 因上努力,果上随缘。
- 用命令行的方式来执行7z压缩和解压缩
- android微博签名错误,Android 微博登录“sso package or sign error” 错误解决方案