Scrapy网络爬虫学习

网络爬虫是什么

网络爬虫是,下载页面,提取页面中的数据,提取页面中的链接,三个循环的技术

Scrapy的安装

我目前在windows10环境下进行本次学习
1.在shell中输入pip install scrapy
我自己以前做cv实验的时候貌似用anaconda下过了
2.检测是否下载成功
在shell的python环境下输入
import scrapy
scrapy.version_info
然后在shell环境下输入scrapy,出现一堆可获取指令信息就证明安装正确

完成第一个爬虫程序

就是一个爬书名和价格的demo,详细可以看清华大学
刘硕老师的《精通Scrapy网络爬虫》
#-*-coding:utf-8-*-

import scrapy

class BooksSpider(scrapy.Spider):

    name="books"

    start_urls = ['https://books.toscrape.com/']

    def parse(self,response):
        for book in response.css('article.product_pod'):
            name = book.xpath('./h3/a/@title').extract_first()
            price= book.css('p.price_color::text').extract_first()
            yield{
                'name':name,
                'price':price
            }
        next_url=response.css('ul.pager li.next a::attr(href)').extract_first()
        if next_url:
            next_url=response.urljoin(next_url)
            yield scrapy.Request(next_url,callback=self.parse)

编写Spider

Spider的基本框架

请添加图片描述
请添加图片描述
这两个图看完,神清气爽,通俗易懂

Request对象

Request对象用来描述一个HTTP请求,下面是其构造器方法的参数列表
没必要都知道,不是专业从业者会用就行
一般用法是
request=scrapy.Request('网站链接', callback=self.parseItem)
其他的用默认值即可,其中callback是页面解析函数,Callable类型

Response对象

Response对象用来描述一个HTTP相应,她只是一个基类,根据相应内容
的不同有下列子表:TextResponse,HtmlResponse,XmlResponse
当一个界面下载完成时,下载器根据HTTP响应头部中的Content-Type信息创建
某个子类对象,其中后两个是TextResponse的子类
最常用的对象的属性的方法是
response.xpath(query)
使用xpath选择器在response中提取数据,
response.css(query)
类似上一个
response.urljoin(url)
用于构造绝对url。当传入的是一个url的相对地址是,然后其会计算出相应的绝对url

Spider开发流程

继承scrapy.Spider

Scrapy框架提供了一个Spider基类,我们编写的Spider需要继承他

为spider命名

就是通过name标识符

设置其实爬取点

Spider必须要从某个或某些页面开始爬取,即爬取点,我们通过类属性start_urls
来设定爬取的起点,该属性通常被是实现成一个列表。
其中,起爬点的下载请求是由引擎调用Spider对象的start_requests方法

实现页面解析函数

页面解析函数是构造Request对象时通过callback参数指定的回调函数
实现的功能有将数据封装后提交给Scrapy引擎
有使用选择器提取页面中的链接,用其构造新的Request对象并提交给引擎
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值