Python爬虫之Scrapy

Scrapy安装

终端输入pip install scrapy

但是大部分情况下这样使用都会报错,是因为我们缺少一个twisted库,

Archived: Python Extension Packages for Windows - Christoph Gohlke (uci.edu)

在这可以找到我们需要的版本

cp后面的数字是Python版本,win后面的是系统版本

下载完成后,终端输入 pip + instal + twisted路径  安装

切记安装完成twisted后再安装Scrapy

有时候也会报错pip版本过低,需要在终端输入以下指令:

python -m pip install --upgrade pip

Scrapy基本使用

打开终端(win + r   输入cmd   回车)

推荐把项目放在平时使用的文件夹下,可以输入指令cd+文件目录

创建爬虫项目:scrapy startproject + 项目名称(不能以数字或汉字开头)

创建爬虫文件(要在spiders文件夹中取创建)

cd 项目的名字\项目的名字\spiders

创建文件:scrapy genspider 爬虫文件的名字 要爬取的网页(一般不需要http协议)

以爬取百度为例

运行爬虫代码

scrapy crawl 爬虫的名字

import scrapy


class BaiduSpider(scrapy.Spider):
    # 爬虫的名字,用于运行爬虫的时候,使用的值
    name = "baidu"
    # 允许访问的域名
    allowed_domains = ["www.baidu.com"]
    # 起始的url地址,指的是第一次要访问的域名
    # start_urls 是在allowed_domains 前面添加了一个http://
    start_urls = ["https://www.baidu.com"]


    # 是执行了start_urls之后执行的方法,方法中的response就是返回的那个对象
    # 相当于response = urllib.request.urlopen()
    #      response = requests.get()
    def parse(self, response):

        print('hello world')
        pass

我们在'baidu,py'中输入了一些内容,尝试运行

但是我们并没有发现这其中有我们想要的内容,是因为其中有个robots协议

在这个协议上的公司规定了互相不爬取对方网站,

我们在'settings.py'这个文件中找到了以下内容:

但是我们并不需要遵守这个协议

所以直接注释掉 

再次运行就找到了我们输入的内容

scrapy项目基本案例

scrapy项目的结构

1.scrapy项目的结构

 项目名称
    项目名称
        spiders文件夹(存储的是爬虫文件)
            init
            自定义的爬虫文件       核心功能文件***

        init
        items          定义数据结构的地方 数据的结构都包含哪些
        middlewares    中间件   代理
        pipelines      管道   用来处理下载的数据
        settings       配置文件    robots协议   UA定义等



2.response的属性和方法
    response.text   获取的是响应的字符串 
    response.body   获取的是二进制数据
    response.xpath  可以直接使用xpath方法解析response中的内容
    response.extract()   提取seletor对象的data属性值
    response.extract_first()    提取seletor列表的第一个数据
        # 字符串
        content = response.text
        # 二进制数据
        content = response.body
        # xpath解析
        span = response.xpath('//*[@id="filter"]/div[1]/a[1]')[0]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值