使用scrapy构建新的FormRequest爬取新发地菜价

import scrapy
from scrapy.http import FormRequest

class CaijiaSpider(scrapy.Spider):
    name = 'caijia'
    #allowed_domains = ['http://www.xinfadi.com.cn/priceDetail.html']

    def start_requests(self):
        self.url = 'http://www.xinfadi.com.cn/getPriceData.html'
        self.data = {'limit': '20',
                'current': '1'}
        self.MAX_PAGE = 17938
        yield FormRequest(url=self.url,formdata=self.data,method='post')

    def parse(self, response):
        print('正在获取第' + str(int(self.data['current'])) + '页')
        dic =response.json()
        price_list = dic['list']
        item = {}
        for test in range(1, len(price_list)):
            info = price_list[test]
            item['fenlei'] = info.get('prodCat')
            item['name'] = info.get('prodName')
            item['low_price'] = info.get('lowPrice')
            item['ave_price'] = info.get('avgPrice')
            item['max_price'] = info.get('highPrice')
            item['guige'] =  info.get('specInfo')
            item['place'] =  info.get('place')
            item['danwei'] = info.get('unitInfo')
            item['data'] = info.get('pubDate')

            yield item

        #解析下一页数据

        if int(self.data['current'])>= self.MAX_PAGE:return

        self.data['current'] = str(int(self.data['current'])+1)
        yield FormRequest(url=self.url,formdata=self.data,method='post')



setting设置

 终端运行命令:scrapy crawl caijia -o xinfadi.csv爬取并保存为xinfadi.csv

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值