Scrapy框架爬虫—以京东众筹为例

第一步, 打开命令提示符,创建一个Scrapy框架;

在这里插入图片描述

第二步,定位到创建的文件夹;

在这里插入图片描述

第三步,在spider文件夹中创建一个.py文件(注:不要关闭命令提示符);

在这里插入图片描述

第四步,打开items.py这个文件,将提取信息的名称、属性写入其中;
import scrapy


class Jd1Item(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    # 定义所找的变量的名字、属性
    title = scrapy.Field()
    perc = scrapy.Field()
    outc1 = scrapy.Field()
    money = scrapy.Field()
    outc2 = scrapy.Field()
    time = scrapy.Field()
    outc3 = scrapy.Field()
第五步,打开第三步创建的.py文件;

在这里插入图片描述

第六步,根据网页源代码查找提取信息,编写代码(这里需要修改start_urls为访问网页的网址。删除allowed_domains,导入items.py中的Jd1Item类);

提取信息的其他方式见(https://blog.csdn.net/weixin_43196531/article/details/85159471)

import scrapy
# 导入items类, 使items类生效
from jd1.items import Jd1Item

class Jdzch1Spider(scrapy.Spider):
    name = 'jdzch1'
    start_urls = ['http://z.jd.com/bigger/search.html']

    def parse(self, response):
        result = response.xpath('//li[@class="info type_now"]')
        # 循环每个商品,提取所需信息
        for i in result:
            # 定义 item 字典
            item = Jd1Item()
            # 筛选信息
            item['title'] = i.xpath('.//h4[@class="link-tit"]/text()').extract_first()
            item['perc'] = i.xpath('.//li[@class="fore1"]/p[@class="p-percent"]/text()').extract_first()
            item['outc1'] = i.xpath('.//li[@class="fore1"]/p[@class="p-extra"]/text()').extract_first()
            item['money'] = i.xpath('.//li[@class="fore2"]/p[@class="p-percent"]/text()').extract_first()
            item['outc2'] = i.xpath('.//li[@class="fore2"]/p[@class="p-extra"]/text()').extract_first()
            item['time'] = i.xpath('.//li[@class="fore3"]/p[@class="p-percent"]/text()').extract_first()
            item['outc3'] = i.xpath('.//li[@class="fore3"]/p[@class="p-extra"]/text()').extract_first()
            yield item
第七步,打开pipelines.py,将所提取的内容写入json文件;
import json

class Jd1Pipeline(object):
        # 定义初始化函数
    def __init__(self):
        # 定义函数名
        self.filename = open('jdzch.json', 'w',encoding = 'utf-8')
    # 处理函数
    def process_item(self, item, spider):
        # 将json数据转化为字符串
        text = json.dumps(dict(item), ensure_ascii = False) + '\n'
        # 对文件进行写入
        self.filename.write(text)
    # 定义文件关闭函数
    def close_spider(self,spider):
        self.filename.close()
第八步, 打开settings.py,修改访问的USER_AGENT,注释掉ROBOTSTXT_OBEY,解除ITEM_PIPELINES注释;
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2714.400'

在这里插入图片描述
在这里插入图片描述

最后,打开命令提示符,运行创建的.py文件(这里是jdzch1.py);

在这里插入图片描述文件内容如下:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值