写在前面

自学爬虫入门之后感觉应该将自己的学习过程整理一下,也为了留个纪念吧。

scrapy环境的配置还请自行百度,其实也不难(仅针对windows系统,centos配置了两天,直到现在都没整明白)

就是安装python之后下载pip,setup pip,然后用pip install下载就行了(pyspider也是这样配置的)。

附主要资料参考地址

scrapy教程地址  https://www.bilibili.com/video/av13663892?t=129&p=2

eclipse开发scrapy  https://blog.csdn.net/ioiol/article/details/46745993

首先要确保主机配置了eclipse、python还有pip的环境

安装scrapy框架的方法

进入cmd界面

::pip更新命令

pip install --upgrade pip

::pip安装scrapy

pip intall scrapy

安装完成之后就可以使用了

cmd环境创建scrapy的demo程序

首先创建一个目录,位置随意,随后进入目录,输入scrapy查看命令使用方式

startproject创建工程命令。格式scrapy startproject 工程名称

genspider创建爬虫命令,一个工程可以有多个爬虫。格式 scrapy genspider 爬虫名(不能和工程重名)爬虫初始ip地址值

目标是获取tmooc首页的侧边栏的内容(sub的子元素a的子元素span的文本内容)

tmooc首页

 侧边栏内容

编辑item.py,位置在spider目录同级(代码简单,就不粘贴代码了)

编辑test.py

代码部分

# -*- coding: utf-8 -*-

import scrapy

# 需要导包,引入生成item的方法

from demo.items import DemoItem

class TestSpider(scrapy.Spider):

# 爬虫名,运行时要用到

name = 'test'

# 限制域,超出范围者不去处理,可省略

allowed_domains = ['http://www.tmooc.cn']

# 起始地址

start_urls = ['http://www.tmooc.cn/']

# 回调函数

def parse(self, response):

# 爬虫的本质就是请求地址,解析响应内容,然后再次请求下一个地址的程序

# 所以爬虫的主要部分就在于如何操作response对象

nodes=response.xpath("//li[@class='sub']")

for node in nodes:

#item由spider同级目录下的items.py方法生成,是一个类似与字典(java map)的类型

item=DemoItem()

item['name']=node.xpath("./a/span/text()").extract()[0]

#yield类似于return,详情百度。

yield item

编译test.py,运行spider程序

crawl是运行spider的命令。格式scrapy crawl 爬虫名 [-o 文件名]

-o参数可选,作用是将spider爬取的数据保存。保存在运行指令的目录下,可以保存成csv(excel表)json jsonl xml...等多种格式

结果展示

eclipse开发scrapyspider工程

首先要保证eclipse有python的开发环境

新建python工程,选项默认即可

创建好的目录结构

进入本地的workspace,找到该工程目录

将刚才创建的scrapy工程目录拷贝过来,不要一开始创建的那个文件夹

将demo目录

拷贝到

工程目录下。记得删除上次运行的结果文件

run -> run configuretion ->

运行结果

 

eclipse开发scrapy爬虫工程,附爬虫临门级教程的更多相关文章

  1. eclipse开发工具Import工程后,工程文件夹上出现黄色感叹号——解决方法

    eclipse开发工具Import工程后,工程文件夹上出现黄色感叹号. 可能是Work目录无效,解决方法:删除Work目录即可,如下图所示: 删除后,如下图:

  2. 如何设置eclipse开发的web工程自动发布到tomcat的webapps下?

    使用eclipse开发web工程,在配置好服务器(tomcat)之后运行该web工程,发现能正常运行.但是问题在于,当你打开tomcat路径\webapps时,会发现没有该web应用(你的web工程名 ...

  3. eclipse开发Java web工程时,jsp第一行报错,如何解决?

    与myeclipse不同,eclipse开发java web项目时是要下载第三方软件(服务器)的,正是这个原因,很多初学者用eclipse学习java web的时候,总是会遇到一些小问题.其中常见的一 ...

  4. scrapy工具创建爬虫工程

    1.scrapy创建爬虫工程:scrapy startproject scrape_project_name >scrapy startproject books_scrapeNew Scrap ...

  5. 基于Python,scrapy,redis的分布式爬虫实现框架

    原文  http://www.xgezhang.com/python_scrapy_redis_crawler.html 爬虫技术,无论是在学术领域,还是在工程领域,都扮演者非常重要的角色.相比于其他 ...

  6. scrapy进阶(CrawlSpider爬虫__爬取整站小说)

    # -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...

  7. 『Scrapy』全流程爬虫demo

    建立好的爬虫工程如下: item.py 它用来存储解析后的响应文件: # -*- coding: utf-8 -*- # Define here the models for your scraped ...

  8. Scrapy+redis实现分布式爬虫

    概述 什么是分布式爬虫 需要搭建一个由n台电脑组成的机群,然后在每一台电脑中执行同一组程序,让其对同一网络资源进行联合且分布的数据爬取. 原生Scrapy无法实现分布式的原因 原生Scrapy中调度器 ...

  9. 基于Scrapy的B站爬虫

    基于Scrapy的B站爬虫 最近又被叫去做爬虫了,不得不拾起两年前搞的东西. 说起来那时也是突发奇想,想到做一个B站的爬虫,然后用的都是最基本的Python的各种库. 不过确实,实现起来还是有点麻烦的 ...

随机推荐

  1. <configSections> 位置引起的错误

    今天在配置一个项目的时候,花了挺长时间配置完成,然后一启动项目,懵了,启动报错:错误显示 Configuration Error Description: An error occurred duri ...

  2. (二)Asp.net web api中的坑-【http get请求中的参数】

    webapi主要的用途就是把[指定的参数]传进[api后台],api接收到参数,进行[相应的业务逻辑处理],[返回结果].所以怎么传参,或者通俗的说,http请求应该怎么请求api,api后台应该怎么 ...

  3. CEIWEI USBMonitor监控驱动 OCX/SDK USB 监控精灵 USB过滤驱动

    CEIWEI USBMonitor监控精灵软件SDK USBMonitorX.dll SDK,能够嵌入到你的App程序中,从而在你的App中实现USB端口协议分析.调试USB设备的协议信息,并可以拦截 ...

  4. 同时支持Android 和 ios 投屏到电脑的软件,Support Android and ios screen shrare to PC - 希沃授课助手

    最近学校由粉笔黑板更换了智慧电子黑板,然后发现了一个好玩的软件. 感谢希沃公司的开发: 希沃授课助手,这是一款同时支持Android 和 ios 投屏和远程控制的. 效果很流畅,非常赞

  5. 图像Resize中0.5像素中心对齐的问题

    目录 0.5像素对齐的问题 0.5像素对齐的问题 1. 问题提出 在进行图像缩放时,偶尔会看到一些比较奇怪的代码,其中有一个就是0.5像素中心对齐的问题,例如在OpenCV线性插值的代码中有类似如下操 ...

  6. Hyperledger Fabric1.4 手动搭建过程

    1.生成证书: #路径需要更改为自己的路径 cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network ...

  7. 计数器+打卡+习惯+目标APP推荐

    目录 一.计数器类APP推荐 1.1. Thing Counter - Google Play 上的应用 1.2. Counter - Apps on Google Play 1.3. Counter ...

  8. 超级块,i节点,数据块,目录块,间接块

    一.物理磁盘到文件系统 文件系统用来存储文件内容,文件属性,和目录,这些类型的数据如何存储在磁盘块上的呢?Unix/linux使用了一个简单的方法. 他将磁盘分为3个部分: 超级块,文件系统中第一个块 ...

  9. Spring IoC 和 DI 简介(二)

    Spring IoC 和 DI 简介 IoC:Inverse of Control(控制反转) 读作“反转控制”,更好理解,不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由 ...

  10. 解决 pycharm [Errno 11001] getaddrinfo failed 错误提示!

    我看网上很多问题对这个问题的解决方法也是一只半解的,可能产生问题的原因不一样吧,今天我说下我的经验 解决办法: 原因就是你的本地dns解析的host文件,里面的的解析地址被注释了! 打开本地的hous ...