爬虫——scrapy入门

scrapy

  • 安装scrapy
pip install scrapy

windows可能安装失败,需要先安装c++库或twisted,pip install twisted

  • 创建项目
scrapy startproject tutorial

该命令将会创建包含下列内容的 tutorial 目录:

tutorial/
    scrapy.cfg
    tutorial/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
            ...

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

为了创建一个Spider,您必须继承 scrapy.Spider 类,定义以下三个属性

scrapy genspider dmoz dmoz.com 终端命令可以直接完成这步操作

  • 属性

    • name: 用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字
    • start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取
    • parse() 是spider的一个方法。 被调用时,每个初始URL完成下载后生成的
    • Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象
 1 import scrapy
 2
 3 class DmozSpider(scrapy.Spider):
 4     name = "dmoz"
 5     allowed_domains = ["dmoz.org"]
 6     start_urls = [
 7         "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
 8         "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
 9     ]
10
11     def parse(self, response):
12         filename = response.url.split("/")[-2]
13         with open(filename, ‘wb‘) as f:
14             f.write(response.body)
  • 爬取
scrapy crawl dmoz

过程:Scrapy为Spider的 start_urls 属性中的每个URL创建了 scrapy.Request 对象,并将 parse 方法作为回调函数(callback)赋值给了Request;Request对象经过调度,执行生成 scrapy.http.Response 对象并送回给spider parse() 方法。


    xpath(): 传入xpath表达式,返回该表达式所对应的所有节点的selector list列表 。
    css(): 传入CSS表达式,返回该表达式所对应的所有节点的selector list列表.
    extract(): 序列化该节点为unicode字符串并返回list。
    re(): 根据传入的正则表达式对数据进行提取,返回unicode字符串list列表。

  • scrapy shell
scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
  • response

    • response.body:包体
    • response.headers:包头
    • response.xpath():xpath选择器
    • response.css():css选择器
 1 import scrapy
 2
 3 class DmozSpider(scrapy.Spider):
 4     name = "dmoz"
 5     allowed_domains = ["dmoz.org"]
 6     start_urls = [
 7         "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
 8         "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
 9     ]
10
11     def parse(self, response):
12         for sel in response.xpath(‘//ul/li‘):
13             title = sel.xpath(‘a/text()‘).extract()
14             link = sel.xpath(‘a/@href‘).extract()
15             desc = sel.xpath(‘text()‘).extract()
16             print title, link, desc

请使用手机"扫一扫"x

原文地址:https://www.cnblogs.com/siplips/p/9726210.html

时间: 2024-11-07 18:19:13

爬虫——scrapy入门的相关文章

网页爬虫--scrapy入门

本篇从实际出发,展示如何用网页爬虫.并介绍一个流行的爬虫框架~ 1. 网页爬虫的过程 所谓网页爬虫,就是模拟浏览器的行为访问网站,从而获得网页信息的程序.正因为是程序,所以获得网页的速度可以轻易超过单身多年的手速:).通常适用于需要大量网页信息的场合. 爬取网页的流程为:访问初始url -> 获得返回的网页,从这个网页中得到新的url并放入待爬队列 -> 访问新的url-> ...依次循环.整体上来看就是一个广度优先的过程,当然,新的url也不一定非要从返回的网页中获得. 一个简单的网页

python之路 -- 爬虫 -- Scrapy入门

Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 下面是Scrapy的架构,包括组件以及在系统中发生的数据流的概览(绿色箭头所示).  数据流 Scra

Scrapy 爬虫框架入门案例详解

欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:崔庆才 Scrapy入门 本篇会通过介绍一个简单的项目,走一遍Scrapy抓取流程,通过这个过程,可以对Scrapy对基本用法和原理有大体的了解,作为入门. 在本篇开始之前,假设已经安装成功了Scrapy,如果尚未安装,请参照上一节安装课程. 本节要完成的任务有: 创建一个Scrapy项目 创建一个Spider来抓取站点和处理数据 通过命令行将抓取的内容导出 创建项目 在抓取之前,你必须要先创建一个S

小白学 Python 爬虫(37):爬虫框架 Scrapy 入门基础(五) Spider Middleware

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

小白学 Python 爬虫(40):爬虫框架 Scrapy 入门基础(七)对接 Selenium 实战

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

网络爬虫技术入门_Python基础与爬虫技术

Python基础与爬虫技术  课程学习地址:http://www.xuetuwuyou.com/course/195 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站. <Python 基础与爬虫技术>讲解了从静态页面爬取数据的方法以及使用缓存来管理服务器负载的方法.此外,本课程还介绍了如何使用AJA

scrapy入门实践1

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 这就是整个Scrapy的架构图了: 各部件职能: Scrapy Engine: 这是引擎,负责Spiders.ItemPipeline.Downloader.Scheduler中间的通讯,信号.数据传递等 Scheduler(调度器): 它负责接受引擎发送过来的requests请求,并按照一定的方式进行整理排列,入队.并等待Scrapy Engine(引擎)来请

【scrapy】学习Scrapy入门

Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据.抓取网页的一般方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样. Scr

python爬虫Scrapy(一)-我爬了boss数据

一.概述 学习python有一段时间了,最近了解了下Python的入门爬虫框架Scrapy,参考了文章Python爬虫框架Scrapy入门.本篇文章属于初学经验记录,比较简单,适合刚学习爬虫的小伙伴.    这次我选择爬取的是boss直聘来数据,毕竟这个网站的数据还是很有参考价值的,下面我们讲述怎么爬取boss直聘的招聘信息并存盘,下一篇文章我们在对爬取到的数据进行分析. 二.Scrapy框架使用步骤 下面我们做一个简单示例,创建一个名字为BOSS的爬虫工程,然后创建一个名字为zhipin的爬虫