scrapy框架 的快速入门

首先安装scrapy cmd ——>输入pip install scrapy

window 下还需安装pypiwin32  pip install pypiwin32

pycharm 不能直接创建scrapy项目

在你的项目工作目录或者包目录下, cmd ——> 输入 scrapy startproject [项目名称]

创建好后,会生成这样的目录

我是新建了一些文件,不要见怪,后面会讲到,

items.py自定义数据类型,不需要使用字典的方式去使用

middlewares.py是中间件

pipelines.py处理爬取的数据

 

一些设置建议配置一下,在setting.py里面

user-agent可以去浏览器中copy一个,

新建一个爬虫 在新建项目目录下cmd输入scrapy genspider [文件名(注意不能与项目名一样)] [允许访问的域名]

如 scrapy genspider cyjy_spider "cyjy.com"

在spiders包下面生成了一个cyjy_spider.py的文件

爬虫代码就在这个文件里写

我写了一个小demo供大家参考

在cyjy_spider.py中

# -*- coding: utf-8 -*-
import scrapy


class CyjySpiderSpider(scrapy.Spider):
    name = 'cyjy_spider'
    allowed_domains = ['cyjy.com']
    start_urls = ['http://www.cyjy.com/']

    def parse(self, response):
        print("*"*100)
        content_logo_img = response.xpath("//div[@class='cyjt_logo fl']/a/img/@src").get()
        content_logo_img = {"content_logo_img":content_logo_img}
        print("*"*100)
        yield content_logo_img

在pipelines.py中

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
import json

class CyjyPipeline(object):

    def __init__(self):
        self.fp = open("img_content.json","w",encoding="utf-8")

    def open_spider(self,spider):
        print("爬虫开始了")

    def process_item(self, item, spider):
        img_json = json.dumps(item)
        print("img:", img_json)
        self.fp.write(img_json+"\n")
        return item

    def close_spider(self,spider):
        self.fp.close()
        print("爬虫结束了")

在项目目录下新建一个start_project.py文件


from scrapy import cmdline

cmdline.execute(["scrapy","crawl","cyjy_spider"])

最后运行start_project.py文件就行

效果在img_content.json中存储了{"content_logo_img": "http://www.cyjy.com/templets/default/images/index/cyjt_logo.png"}

说明已经成功爬取了春雨教育的logo图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值