Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >爬虫——scrapy入门

爬虫——scrapy入门

作者头像
py3study
发布于 2020-01-19 07:24:57
发布于 2020-01-19 07:24:57
58000
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

scrapy

  • 安装scrapy
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install scrapy

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

  • 创建项目
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy startproject tutorial

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 对象
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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)
  • 爬取
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy crawl dmoz

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    xpath(): 传入xpath表达式,返回该表达式所对应的所有节点的selector list列表 。
    css(): 传入CSS表达式,返回该表达式所对应的所有节点的selector list列表.
    extract(): 序列化该节点为unicode字符串并返回list。
    re(): 根据传入的正则表达式对数据进行提取,返回unicode字符串list列表。
  • scrapy shell
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy shell "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
  • response
    • response.body:包体
    • response.headers:包头
    • response.xpath():xpath选择器
    • response.css():css选择器
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Scrapy制作爬虫
编写爬虫: 通过爬虫语言框架制作一个爬虫程序 import scrapy from tutorial.items import DmozItem class DmozSpider(scrapy.Spider): name = 'dmoz' allowed_domains = ['dmoz.org'] start_urls = [ "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
用户6172015
2020/11/03
4110
Scrapy:python3下的第一次运
1,引言 《Scrapy的架构初探》一文讲解了Scrapy的架构,本文就实际来安装运行一下Scrapy爬虫。本文以官网的tutorial作为例子,完整的代码可以在github上下载。 2,运行环境配置
py3study
2020/01/06
3360
python爬虫----(4. scrapy框架,官方文档以及例子)
官方文档: http://doc.scrapy.org/en/latest/ github例子: https://github.com/search?utf8=%E2%9C%93&q=sc
lpe234
2020/07/27
7250
(原创)七夜在线音乐台开发 第三弹 爬虫篇
上一篇咱们讲到了七夜音乐台的需求和所需要的技术。咱们今天就讲一下爬虫,为什么要讲爬虫,因为音乐台的数据源需要通过爬虫来获取,不可能手动来下载。下图是一个网络爬虫的基本框架: 网络爬虫的基本工作流程如下
七夜安全博客
2018/06/26
1.1K0
scrapy初试
定义item Item是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。 类似在ORM中做的一样,您可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field的类属性来定义一个Item。 (如果不了解ORM, 不用担心,您会发现这个步骤非常简单) 首先根据需要从dmoz.org获取到的数据对item进行建模。 我们需要从dmoz中获取名字,url,以及网站的描述。 对此,在item中定义相应的字段。编辑 tutorial 目录中的 items.py 文件:
爱撒谎的男孩
2019/12/30
3600
python爬虫----(2. scrapy框架)
Scrapy框架,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
lpe234
2020/07/27
4030
常用python爬虫框架整理Python中好用的爬虫框架1.Scrapy2.PySpider3.Crawley4.Portia5.Newspaper6.Beautiful Soup7.Grab8.Co
一般比价小型的爬虫需求,我是直接使用requests库 + bs4就解决了,再麻烦点就使用selenium解决js的异步 加载问题。相对比较大型的需求才使用框架,主要是便于管理以及扩展等。
若与
2018/08/03
1.5K0
常用python爬虫框架整理Python中好用的爬虫框架1.Scrapy2.PySpider3.Crawley4.Portia5.Newspaper6.Beautiful Soup7.Grab8.Co
scrapy(2)——scrapy爬取新浪微博(单机版)
Sina爬虫教程 Scrapy环境搭建 环境:window10 + python2.7(包含scrapy)+ mongoDB 1.1 安装集成了python2.7的anaconda anaconda下载链接:https://www.continuum.io/downloads 由于scrapy库目前只能在python2.7上使用,请务必确保版本正确,如果已经安装了python3.5,建议使用anaconda_2.7的版本,因为anaconda中集成了python2.7且使用anaconda安装第三库非常方便
Mister24
2018/05/14
2.4K0
[爬虫]scrapy框架
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
周小董
2019/03/25
1.3K0
[爬虫]scrapy框架
Scrapy(3)将蜘蛛狠狠的踩在地上摩擦摩擦
看到蜘蛛,你可能会想起恶心的真蜘蛛,像这样的,够吓人吧,世界上十种最毒蜘蛛,他算上其中之一。
公众号---人生代码
2020/05/16
7230
爬虫框架Scrapy的第一个爬虫示例入门教程
豌豆贴心提醒,本文阅读时间8分钟 我们使用dmoz.org这个网站来作为小抓抓一展身手的对象。 首先先要回答一个问题。 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要抓取的目标 制作爬虫(Spider):制作爬虫开始爬取网页 存储内容(Pipeline):设计管道存储爬取内容 好的,基本流程既然确定了,那接下来就一步一步的完成就可以了。 1.新建项目(Project) 在空目录下按住Shift键右击,选择
小小科
2018/05/03
1.2K0
爬虫框架Scrapy的第一个爬虫示例入门教程
「Python爬虫系列讲解」十三、用 Scrapy 技术爬取网络数据
前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试 「Python爬虫系列讲解」四、BeautifulSoup 技术 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息 「Python爬虫系列讲解」六、Python 数据库知识 「Python爬虫系列讲解」七、基于数据库存储的 BeautifulSoup 招聘爬取 「Python爬虫系列讲解」八、Selenium 技术 「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识 「Python爬虫系列讲解」十、基于数据库存储的 Selenium 博客爬虫 「Python爬虫系列讲解」十一、基于登录分析的 Selenium 微博爬虫 「Python爬虫系列讲解」十二、基于图片爬取的 Selenium 爬虫
荣仔_最靓的仔
2021/02/02
3.3K0
「Python爬虫系列讲解」十三、用 Scrapy 技术爬取网络数据
Scrapy入门与实践(二) - helloworld
在开始爬取之前,必须创建一个新的Scrapy项目。 进入打算存储代码的目录中,运行下列命令:
JavaEdge
2019/02/15
1.1K0
Scrapy入门与实践(二) - helloworld
Python scrapy框架的简单使用
注意:Scrapy运行ImportError: No module named win32api错误。请安装:pip install pypiwin32
Python知识大全
2020/02/13
1.1K0
Python scrapy框架的简单使用
开源python网络爬虫框架Scrapy
所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所有HTML页面就是一个有待考究的问题了。
py3study
2020/01/07
1.8K0
用scrapy爬虫抓取慕课网课程数据详细步骤
关于如何安装scrapy框架,可以参考这篇文章 史上最完全Mac安装Scrapy指南 http://www.jianshu.com/p/a03aab073a35 超简单Windows安装Scrapy (仅需一步) http://www.cnblogs.com/lfoder/p/6565088.html 这里使用的是Python2.7 例子的目标就是抓取慕课网的课程信息 流程分析 抓取内容 例子要抓取这个网页http://www.imooc.com/course/list 要抓取的内容是全部的课
机器学习AI算法工程
2018/03/15
2.1K0
用scrapy爬虫抓取慕课网课程数据详细步骤
Python 爬虫之Scrapy《上》
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
Wu_Candy
2022/07/04
3720
Python 爬虫之Scrapy《上》
爬虫框架 Scrapy 知识点简介
Scrapy框架因为功能十分强大,所以依赖很多库,不能直接安装,需要先安装依赖库,因为我的电脑在Windows下,所以这里展示Windows下的安装方法(如果有其他平台的需要,欢迎给我留言我在发出来)。
数据STUDIO
2022/04/11
3270
爬虫框架 Scrapy 知识点简介
Python - 手把手教你用Scrapy编写一个爬虫
在群里和群友们聊天,就聊到了用爬虫去爬小说方法,毫无疑问肯定首选Python啊,依稀记得之前大数据比赛时候联系的数据可视化使用Scrapy和Flask,那就用Scrapy写一个小爬虫吧,说干就干
用砖头敲代码
2022/08/30
4880
初识Scrapy框架+爬虫实战(7)-爬取链家网100页租房信息
Item 是保存爬取到的数据的容器。比如我下面将要爬取的链家网租房信息的地点、平米数、价格,我会在item.py文件中定义相应的字段。
秦子帅
2019/08/17
1.3K0
初识Scrapy框架+爬虫实战(7)-爬取链家网100页租房信息
推荐阅读
相关推荐
Scrapy制作爬虫
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验