一:创建项目文件

1:首先在终端使用命令scrapy startproject huaerjieribao 创建项目

2:创建spider

首先cd进去刚刚创建的项目文件overseas

然后执行genspider,并写入爬虫名称和爬虫网站域名

命令如下:

cd  overseas haiwaistudy theory.haiwainet.cn

3:此时会发现在spider文件中多了一个 haiwaistudy.py,

4:scrapy默认不能再IDE中调试的所以这里我们使用一个小技巧,我们再根目录下新建一个entrypoint.py,用于后面的调试

二:编写项目文件

1:然后编写item.py,相当于容器

创建 Item 需要继承 scrapy.Item 类,并且定义类型为 scrapy.Field 的字段

2:编写爬虫文件haiwaistudy.py,定义了爬取范围,爬取内容,是否有下一页循环等信息

parse()---------parse()方法的参数 resposne 是 start_urls 里面的链接爬取后的结果。

extract_first()-----------用 extract_first()方法来获取第一个元素

extract()------获取所有结果组成的列表,所以使用 extract()方法

遇见翻页之类的情况,构造请求时需要用到 scrapy.Request。 这里我们传递两个参数一-url 和 callback

口 url :它是请求链接。

口 callback:它是回调函数。 当指定了该回调函数的请求完成之后,获取到响应,引擎会将该 响应          作为参数传递给这个回调函数。 回调函数进行解析或生成下一个请求,回调函数如上文 的           parse()所示。

urljoin()--------- urljoin()方法可以将相对 URL 构造成一个绝对的 URL

如果是一个简单的爬虫接下来可以直接使用命令的到爬虫结果了,

scrapy crawl haiwaistudy

保存成 JSON 文件:

scrapy crawl  haiwaistudy -o quotes.json

以每一个 Item 输出一行 JSON:

scrapy crawl  haiwaistudy -o quotes.jl

其他格式:

scrapy crawl  haiwaistudy-o quotes .csv

scrapy crawl  haiwaistudy-o quotes.xml

scrapy crawl  haiwaistudy -o quotes.pickle

scrapy crawl  haiwaistudy-o quotes.marshal

scrapy crawl  haiwaistudy -o ftp://user:pass@ftp.example.com/path/to/quotes.csv

这里我个人将他存为了csv格式:

三:存入数据库:

如果想要将数据存入MongoDB则需要在Item Pipeline里进行处理,Item Pipeline的作用是:

口清理 HTML 数据。

口 验证爬取数据,检查爬取字段。

口 查重井丢弃重复内容。

口 将爬取结果保存到数据库。

要实现Item Pipeline很简单,只需要定义一个类并实现 process item()方法即可。启用 Item Pipeline 后, Item Pipeline 会自动调用这个方法。 process item()方法必须返回包含数据的字典或 Item 对象, 或者抛出 Dropltem 异常。

process_item()方法有两个参数。 一个参数是 item,每次 Spider 生成的 Item 都会作为参数传递过 来。 另一个参数是 spider,就是 Spider 的实例。

四:修改settings.py文件

在settings文件中加入以下信息

五:运行爬虫

使用终端,进入overseas文件夹,然后键入scrapy crawl haiwaistudy

然后待爬取完成可以到数据库里查看存储结果,这篇文章当 中没有写分析网站相关的内容,因为这次爬取得网站很简单没有啥加密手段,所以我没有写分析过程

GitHub代码地址:

https://github.com/meixialee/overseas

微信公众号地址:

https://mp.weixin.qq.com/s?__biz=MzU2MzcwOTAzNQ==&mid=2247483752&idx=1&sn=b1334098ca686bcf6e280683c9861f4d&chksm=fc57546ccb20dd7a6935d235a3965b9ece5a696dbda12d952c108ec6e3a8079db4fed13e0456&token=269404096&lang=zh_CN#rd

使用scrapy爬取海外网学习频道的更多相关文章

  1. scrapy 爬取纵横网实战

    前言 闲来无事就要练练代码,不知道最近爬取什么网站好,就拿纵横网爬取我最喜欢的雪中悍刀行练手吧 准备 python3 scrapy 项目创建: cmd命令行切换到工作目录创建scrapy项目  两条命 ...

  2. scrapy 爬取当当网产品分类

    #spider部分import scrapy from Autopjt.items import AutopjtItem from scrapy.http import Request class A ...

  3. scrapy爬取中关村在线手机频道

    # -*- coding: utf-8 -*- import scrapy from pyquery import PyQuery as pq from zolphone.items import Z ...

  4. 爬虫入门(四)——Scrapy框架入门:使用Scrapy框架爬取全书网小说数据

    为了入门scrapy框架,昨天写了一个爬取静态小说网站的小程序 下面我们尝试爬取全书网中网游动漫类小说的书籍信息. 一.准备阶段 明确一下爬虫页面分析的思路: 对于书籍列表页:我们需要知道打开单本书籍 ...

  5. Scrapy爬虫(5)爬取当当网图书畅销榜

      本次将会使用Scrapy来爬取当当网的图书畅销榜,其网页截图如下:   我们的爬虫将会把每本书的排名,书名,作者,出版社,价格以及评论数爬取出来,并保存为csv格式的文件.项目的具体创建就不再多讲 ...

  6. scrapy爬取相似页面及回调爬取问题(以慕课网为例)

    以爬取慕课网数据为例   慕课网的数据很简单,就是通过get方式获取的 连接地址为https://www.imooc.com/course/list?page=2 根据page参数来分页  

  7. Scrapy爬取美女图片 (原创)

    有半个月没有更新了,最近确实有点忙.先是华为的比赛,接着实验室又有项目,然后又学习了一些新的知识,所以没有更新文章.为了表达我的歉意,我给大家来一波福利... 今天咱们说的是爬虫框架.之前我使用pyt ...

  8. Scrapy爬取美女图片第三集 代理ip(上) (原创)

    首先说一声,让大家久等了.本来打算那天进行更新的,可是一细想,也只有我这样的单身狗还在做科研,大家可能没心思看更新的文章,所以就拖到了今天.不过忙了521,522这一天半,我把数据库也添加进来了,修复 ...

  9. Scrapy爬取美女图片第四集 突破反爬虫(上)

     本周又和大家见面了,首先说一下我最近正在做和将要做的一些事情.(我的新书<Python爬虫开发与项目实战>出版了,大家可以看一下样章) 技术方面的事情:本次端午假期没有休息,正在使用fl ...

随机推荐

  1. [PHP] 算法-数组归并排序并计算逆序对的个数的PHP实现

    在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%100000000 ...

  2. java中自己常犯的错误汇总

    package debug; /** 1.定义一个公共的动物类,包含名字.年龄.颜色和吃饭东西方法 2.定义一个猫类,继承动物类,同时拥有玩游戏的本领 3.定义一个狗类,继承动物类,同时拥有看门的本领 ...

  3. 如何把string转换char*类型

    需要调用string头文件  ( #include<string> ) 用string里的函数c_str()可以把string转换为char* 例如 char * c_str2=str1. ...

  4. 记录修改安卓5.0系统浏览器UI遇到的部分问题

    碎碎念 今年七月份本科毕业后入职一家会议平板公司,经过一个一个多月的咸鱼培训轮岗生活,接手了几个小任务,本次记录一下其中一个任务:修改安卓5.0系统浏览器UI.刚接到任务的时候,本以为是很简单的一个任 ...

  5. JS数组分组

    //1.找出数组中相同的元素 getRepeatNum(arr) { let obj = {}; for (let i = 0, len = arr.length; i < len; i++) ...

  6. NB-IOT模块 M5310-A接入百度开放云IOT Hub MQTT

    目录 1.登陆百度开放云,在产品服务中选择IOT HUB 2 2.选择 创建计费套餐,目前1百万条/每月是免费的 2 3.点击管理控制台进入项目列表 4 4. 点击创建项目,项目类型选择数据型 4 5 ...

  7. Pinyin4j实战

    package com.haiyisoft.innovationcenter.pinyin; import org.junit.Test; import net.sourceforge.pinyin4 ...

  8. sql server全文索引使用中的小坑 (转载)

    一.业务场景 我们在实际生产环境中遇到了这样一种需求,即需要检索一个父子关系的子树数据 估计大家也遇到过类似的场景,最典型的就是省市数据,其中path字段是按层级关系生成的行政区路径: 如果我们已知某 ...

  9. python写一个双色球彩票计算器

    首先声明,赌博一定不是什么好事,也完全没有意义,不要指望用彩票发财.之所以写这个,其实是用来练手的,可以参考这个来预测一些其他的东西,意在抛砖引玉. 啰嗦完了,马上开始,先上伪代码 打开网址 读取内容 ...

  10. PLSQL无法粘贴复制

    有2个原因会导致这个问题发生: 一:快捷键设置不正确,按照网上的设置方法把复制粘贴的快捷键重新设置一下,然后重启plsql 二:远程桌面连接开着,关闭后试下(亲测有效)