前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我的第一个 scrapy 爬虫

我的第一个 scrapy 爬虫

作者头像
伍六七AI编程
发布于 2019-10-08 10:43:15
发布于 2019-10-08 10:43:15
41100
代码可运行
举报
文章被收录于专栏:preparedprepared
运行总次数:0
代码可运行

安装 python

这个就不用我说了吧,网上教程一大堆

安装 scrapy 包

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

创建 scrapy 项目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy startproject aliSpider

进入项目目录下,创建爬虫文件

cmd 进入项目目录,执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy genspider -t crawl alispi job.alibaba.com

编写 items.py 文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class AlispiderItem(scrapy.Item):
    # define the fields for your item here like:
    detail = scrapy.Field()
    workPosition = scrapy.Field()
    jobclass = scrapy.Field()

编写 alispi.py 文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from aliSpider.items import AlispiderItem


class AlispiSpider(CrawlSpider):
    name = 'alispi'
    allowed_domains = ['job.alibaba.com']
    start_urls = ['https://job.alibaba.com/zhaopin/positionList.html#page/0']
    pagelink = LinkExtractor(allow=("\d+"))
    rules = (
        Rule(pagelink, callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        # for each in response.xpath("//tr[@style='display:none']"):
        for each in response.xpath("//tr"):
            item = AlispiderItem()
            # 职位名称
            item['detail'] = each.xpath("./td[1]/span/a/@href").extract()
            # # # 详情连接
            item['workPosition'] = each.xpath("./td[3]/span/text()").extract()
            # # # 职位类别
            item['jobclass'] = each.xpath("./td[2]/span/text()").extract()
            yield item

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy crawl alispi

输出到文件 items.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrapy crawl alispi -o items.json

执行成功会显示如下内容

版本说明

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python 3.5.5

源码地址:https://github.com/zhongsb/al...

参考:https://scrapy-chs.readthedoc...

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
scrapy爬虫标准流程
一般我们一个小的爬虫项目,比如爬取一些文章等,直接用python的requests库,配合re模块就可以很快的完成。但是对于一些大规模的爬取,我们需要实现多线程、异步io,数据库连接等操作,自己从头写起会有些麻烦。这时可以用scrapy这个爬虫框架。
羽翰尘
2019/11/20
6490
python爬虫入门(八)Scrapy框架之CrawlSpider类
CrawlSpider类 通过下面的命令可以快速创建 CrawlSpider模板 的代码: scrapy genspider -t crawl tencent tencent.com CrawSpider是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页,而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合。 CrawSpider源码详细解析 class CrawlSpider(Spider)
zhang_derek
2018/04/11
2.3K0
python爬虫入门(八)Scrapy框架之CrawlSpider类
Scrapy入门案例——腾讯招聘(CrawlSpider升级)
需求和上次一样,只是职位信息和详情内容分开保存到不同的文件,并且获取下一页和详情页的链接方式有改动。
100000860378
2018/09/13
7920
Scrapy入门案例——腾讯招聘(CrawlSpider升级)
Python之CrawlSpider
CrawlSpider可以定义规则,再解析html内容的时候,可以根据链接规则提取出指定的链接,然后再向这些链接发送请求所以,如果有需要跟进链接的需求,意思就是爬取了网页之后,需要提取链接再次爬取,使用CrawlSpider是非常合适的
鱼找水需要时间
2023/02/16
4010
Python之CrawlSpider
Python:阳光热线问政平台爬虫
爬取投诉帖子的编号、帖子的url、帖子的标题,和帖子里的内容。 items.py import scrapy class DongguanItem(scrapy.Item): # 每个帖子的标题 title = scrapy.Field() # 每个帖子的编号 number = scrapy.Field() # 每个帖子的文字内容 content = scrapy.Field() # 每个帖子的url url = scrapy.Field()
Lansonli
2021/10/09
4140
Scrapy框架中crawlSpider的使用——爬取内容写进MySQL和拉勾网案例
Scrapy框架中分两类爬虫,Spider类和CrawlSpider类。该案例采用的是CrawlSpider类实现爬虫进行全站抓取。
菲宇
2019/06/13
1.3K0
Python爬虫之分布式爬虫
搭建分布式机群,让其对一组资源进行分布式联合爬取 提升爬取效率 实现分布式: pip install scrapy-redis scrapy-redis 组件的作用: 给原生的scrapy框架提供可以被共享的管道和调度器 ---- 分布式爬虫 实现步骤: scrapy startproject firstdemo scrapy genspider -t crawl xxx [www.xxx.com](http://www.xxx.com/) 修改当前爬虫文件 导包 : from scrapy_r
shaoshaossm
2022/12/26
4831
Python网络爬虫(七)- 深度爬虫CrawlSpider1.深度爬虫CrawlSpider2.链接提取:LinkExtractor3.爬取规则:rules4.如何在pycharm中直接运行爬虫5.
目录: Python网络爬虫(一)- 入门基础 Python网络爬虫(二)- urllib爬虫案例 Python网络爬虫(三)- 爬虫进阶 Python网络爬虫(四)- XPath Python网络爬虫(五)- Requests和Beautiful Soup Python网络爬虫(六)- Scrapy框架 Python网络爬虫(七)- 深度爬虫CrawlSpider Python网络爬虫(八) - 利用有道词典实现一个简单翻译程序 深度爬虫之前推荐一个简单实用的库fake-useragent,可以伪装
Python攻城狮
2018/08/23
1.9K0
Python网络爬虫(七)- 深度爬虫CrawlSpider1.深度爬虫CrawlSpider2.链接提取:LinkExtractor3.爬取规则:rules4.如何在pycharm中直接运行爬虫5.
外行学 Python 爬虫 第十篇 爬虫框架Scrapy
前面几个章节利用 python 的基础库实现网络数据的获取、解构以及存储,同时也完成了简单的数据读取操作。在这个过程中使用了其他人完成的功能库来加快我们的爬虫实现过程,对于爬虫也有相应的 python 框架供我们使用「不重复造轮子是程序员的一大特点」,当我们了解爬虫的实现过程以后就可以尝试使用框架来完成自己的爬虫,加快开发速度。
keinYe
2019/08/15
1.2K0
爬虫课堂(二十五)|使用CrawlSpider、LinkExtractors、Rule进行全站爬取
在爬虫课堂(二十二)|使用LinkExtractor提取链接中讲解了LinkExtractor的使用,本章节来讲解使用CrawlSpider+LinkExtractor+Rule进行全站爬取。 一、CrawlSpider介绍 Scrapy框架中分两类爬虫,Spider类和CrawlSpider类。Spider类的使用已经讲解了很多,但是如果想爬取某个网站的全站信息的话,CrawlSpider类是个非常不错的选择。CrawlSpider继承于Spider类,CrawlSpider是爬取那些具有一定规则网站
黄小怪
2018/05/21
1.4K0
Scrapy框架-Spider和Craw
目录 1.目标 2.方法1:通过Spider爬取 3. 通过CrawlSpider爬取 1.目标 http://wz.sun0769.com/index.php/question/questionTy
py3study
2020/01/17
3860
Python爬虫项目--爬取链家热门城市
本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途)
py3study
2020/01/20
7790
Scrapy爬虫,华为商城商品数据爬虫demo
来自于华为云开发者大会,使用Python爬虫抓取图片和文字实验,应用Scrapy框架进行数据抓取,保存应用了mysql数据库,实验采用的是线上服务器,而这里照抄全是本地进行,如有不同,那肯定是本渣渣瞎改了!
二爷
2020/11/25
8060
Scrapy爬虫,华为商城商品数据爬虫demo
安装和使用Scrapy
可以先创建虚拟环境并在虚拟环境下使用pip安装scrapy。 $ 项目的目录结构如下图所示。 (venv) $ tree . |____ scrapy.cfg |____ douban | |____ spiders | | |____ __init__.py | | |____ __pycache__ | |____ __init__.py | |____ __pycache__ | |____ middlewares.py | |____ settings.py | |____ items.py |
用户8442333
2021/05/21
5060
Scrapy Crawlspider的详解与项目实战
回顾上一篇文章,我们大多时间都是在寻找下一页的url地址或者是内容的url地址上面,我们的大体思路是这样的:
咸鱼学Python
2019/10/09
2K0
Python网络爬虫(六)- Scrapy框架1.Scrapy2.安装和配置3.安装过程常见错误4.代码操作 - 创建一个Scrapy项目5.Scrapy框架进阶 - 深度爬虫
Scrapy Engine(Scrapy核心) 负责数据流在各个组件之间的流。Spiders(爬虫)发出Requests请求,经由Scrapy Engine(Scrapy核心) 交给Scheduler(调度器),Downloader(下载器)Scheduler(调度器) 获得Requests请求,然后根据Requests请求,从网络下载数据。Downloader(下载器)的Responses响应再传递给Spiders进行分析。根据需求提取出Items,交给Item Pipeline进行下载。Spiders和Item Pipeline是需要用户根据响应的需求进行编写的。除此之外,还有两个中间件,Downloaders Mddlewares和Spider Middlewares,这两个中间件为用户提供方面,通过插入自定义代码扩展Scrapy的功能,例如去重等。
Python攻城狮
2018/08/23
1.8K0
Python网络爬虫(六)- Scrapy框架1.Scrapy2.安装和配置3.安装过程常见错误4.代码操作 - 创建一个Scrapy项目5.Scrapy框架进阶 - 深度爬虫
Python爬虫之crawlspider类的使用
对应的crawlspider就可以实现上述需求,能够匹配满足条件的url地址,组装成Reuqest对象后自动发送给引擎,同时能够指定callback函数
海仔
2020/09/28
7170
爬虫系列(13)Scrapy 框架-CrawlSpider、图片管道以及下载中间件Middleware。
首先在说下Spider,它是所有爬虫的基类,而CrawSpiders就是Spider的派生类。对于设计原则是只爬取start_url列表中的网页,而从爬取的网页中获取link并继续爬取的工作CrawlSpider类更适合。
野原测试开发
2019/07/10
1.4K0
普通爬虫有啥意思,我写了个通用Scrapy爬虫
除了钱,大家还比较喜欢什么?当然是全能、万能和通用的人或事物啦,例如:全能、什么都会的员工、万能钥匙、通用爬虫等等。今天我们学习Scrapy通用爬虫,利用Scrapy通用爬虫来获取美食杰网站[1]。
Python进击者
2022/01/11
1.1K0
普通爬虫有啥意思,我写了个通用Scrapy爬虫
CrawlSpider(规则爬虫)和Spider版爬虫
1.规则爬虫--scrapy genspider -t crawl Question wz.sun0769.com
用户2337871
2019/07/19
6310
推荐阅读
相关推荐
scrapy爬虫标准流程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验