python scrapy 学习(一)第一个scrapy项目

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。话不多说,开始学习scrapy框架~

下载scrapy

pip3 install scrapy (python3以上版本)

创建scrapy项目

创建一个爬取代理ip的项目,命令如下:

scrapy startproject mySpiderIp

生成工程目录如下:
工程目录

  • scrapy.cfg: 项目的配置文件
  • mySpiderIp/: 该项目的python模块。之后您将在此加入代码。
  • mySpiderIp/items.py: 项目中的item文件.
  • mySpiderIp/pipelines.py: 项目中的pipelines文件.
  • mySpiderIp/settings.py: 项目的设置文件.
  • mySpiderIp/spiders/: 放置spider代码的目录.

定义Item

编辑 mySpiderIp 目录中的 items.py 文件:

import scrapy

class MyspideripItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    ip = scrapy.Field()
    protocal = scrapy.Field()
    port = scrapy.Field()
    desc = scrapy.Field()
    pass

编写第一个爬虫(Spider)

保存在 mySpiderIp/spiders 目录下的 IpSpider.py 文件中:

import scrapy

class IpSpider(scrapy.Spider):
    name = "myIp"
    allowed_domains = ["xicidaili.com"]
    start_urls = [
        "https://www.xicidaili.com/nn/1",
        "https://www.xicidaili.com/nn/2"
    ]

    def parse(self, response):
        filename = response.url.split("/")[-1]
        with open(filename, 'wb') as f:
            f.write(response.body)

运行爬虫

scrapy crawl myIp(对应IpSpider name定义)

本以为成功执行,发现报错了。。
在这里插入图片描述

查阅资料发现是需要在 settings.py文件中设置user-agent和robots反爬虫策略:

  1. ROBOTSTXT_OBEY = False
  2. USER_AGENT = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36’

运行结果

生成了1/2两个文件,包含爬取网站html内容
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值