关注
项目分析与小结: http://blog.csdn.net/zhyh1435589631/article/details/53053949
实现环境: pyspider + centos7 +
mysql 5.5
pyspider 部分代码:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2016-11-05 23:18:55
# Project: taobao_food
from
pyspider.libs.base_handler
import
*
import
re
import
json
import
MySQLdb
class
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.text
pattern = 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])
查看原帖
点赞 7
牛客热帖
更多
正在热议
更多
# 牛客AI体验站 #
18247次浏览 314人参与
# 记录实习开销 #
185091次浏览 841人参与
# 牛客新年AI问运 #
16047次浏览 173人参与
# 大家每天通勤多久? #
84068次浏览 706人参与
# 正在实习的你,几点下班 #
297508次浏览 2080人参与
# 牛客租房专区 #
154587次浏览 1629人参与
# 不给转正的实习,你还去吗 #
2627514次浏览 22922人参与
# 选择和努力,哪个更重要? #
191442次浏览 1497人参与
# 如何缓解入职前的焦虑 #
259953次浏览 1458人参与
# 我的岗位说明书 #
308154次浏览 2753人参与
# 有转正机会的小厂实习值得去吗? #
1191次浏览 22人参与
# 金融银行求职进展汇总 #
309753次浏览 1686人参与
# 你小时候最想从事什么职业 #
154211次浏览 2059人参与
# 校招入职后的感受 #
488682次浏览 3682人参与
# 入职第一天 #
47656次浏览 554人参与
# 投递无反馈,如何优化求职策略? #
8756次浏览 43人参与
# 工作后会跟朋友渐行渐远吗 #
60313次浏览 415人参与
# 你最讨厌面试被问什么 #
2154次浏览 30人参与
# 牛友们,签完三方你在忙什么? #
137645次浏览 997人参与
# 帆软软件工作体验 #
14727次浏览 86人参与
查看10道真题和解析