关注
项目分析与小结: 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
相关推荐
点赞 评论 收藏
分享
查看25道真题和解析
点赞 评论 收藏
分享
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
1329761次浏览 18685人参与
# 非技术岗薪资爆料 #
53526次浏览 730人参与
# 不去互联网可以去金融科技 #
47620次浏览 508人参与
# 和牛牛一起刷题打卡 #
45184次浏览 3576人参与
# 写简历别走弯路 #
360480次浏览 4535人参与
# 我发现了面试通关密码 #
409912次浏览 7312人参与
# 极具前瞻性,现代汽车编程题 #
9608次浏览 190人参与
# 产品每日一题 #
1847次浏览 93人参与
# 来聊聊你目前的求职进展 #
230097次浏览 2908人参与
# 华子oc时间线 #
11326次浏览 60人参与
# 投递实习岗位前的准备 #
754076次浏览 13150人参与
# 如果可以选,你最想从事什么工作 #
220183次浏览 3404人参与
# 晒一晒我的offer #
4034114次浏览 60411人参与
# 国企vs私企,你更想去? #
34657次浏览 405人参与
# 我想象的工作vs实际工作 #
117031次浏览 1808人参与
# 软件开发2024笔面经 #
1571394次浏览 36088人参与
# 硬件兄弟们 甩出你的华为奖状 #
37990次浏览 224人参与
# 24届软开秋招面试经验大赏 #
1240635次浏览 18676人参与
# 互联网公司评价 #
105983次浏览 1373人参与
# 参加过提前批的机械人,你们还参加秋招么 #
16751次浏览 383人参与
# 百度工作体验 #
32052次浏览 315人参与
# 机械制造笔面经 #
12087次浏览 338人参与