Python的爬虫框架scrapy用21行代码写一个爬虫


Posted in Python onApril 24, 2017

开发说明

开发环境:Pycharm 2017.1(目前最新)

开发框架:Scrapy 1.3.3(目前最新)

目标

爬取线报网站,并把内容保存到items.json里

页面分析

Python的爬虫框架scrapy用21行代码写一个爬虫

根据上图我们可以发现内容都在类为post这个div里

下面放出post的代码

<div class="post">
<!-- baidu_tc block_begin: {"action": "DELETE"} -->
<div class="date"><span>04月</span><span class="f">07日</span></div><!-- baidu_tc block_end -->
<h2><a href="http://www.abckg.com/193.html" rel="external nofollow" title="4月7日 淘金币淘里程领取京东签到" rel="bookmark" target="_blank">4月7日 淘金币淘里程领取京东签到</a><span>已结束</span></h2>
<h6>发布日期: 2017-04-07 | 分类: <a href="http://www.abckg.com/xunibi" rel="external nofollow" >虚拟币</a> | 浏览:125177
</h6><div class="intro"><p>淘金币一键领取 http://021.tw/t/ https://www.chaidu.com/App/Web/Taobao-Coin/ 【电脑端30金币】 https://taojinbi.taobao.com/inde ... auto_take=true 【手机端30金币】 http://h5.m.taobao...</p></div></div>

实现方法

1、定义items

class DemoItem(scrapy.Item):
 id = scrapy.Field()
 title = scrapy.Field()
 href = scrapy.Field()
 content = scrapy.Field()

2、新建一个爬虫名为test

# -*- coding: utf-8 -*-
import scrapy
from demo.items import DemoItem
from scrapy.http import Request
class TestSpider(scrapy.Spider):
 #定义爬虫的名字和需要爬取的网址
 name = "test"
 allowed_domains = ["www.abckg.com"]
 start_urls = ['http://www.abckg.com/']
 def parse(self, response):
 for resp in response.css('.post'):
  #实例化item
  item = DemoItem()
  #把获取到的内容保存到item内
  item['href'] = resp.css('h2 a::attr(href)').extract()
  item['title'] = resp.css('h2 a::text').extract()
  item['content'] = resp.css('.intro p::text').extract()
  yield item
  
 #下面是多页面的爬取方法
 urls = response.css('.pageinfo a::attr(href)').extract()
 for url in urls:
  yield Request(url, callback=self.parse)
 categorys = response.css('.menu li a::attr(href)').extract()
 for ct in categorys:
  yield Request(ct, callback=self.parse)

3、修改settings.py,添加以下代码

FEED_EXPORT_ENCODING = 'utf-8'

#运行

打开cmd输入

scrapy crawl test -o items.json

Python的爬虫框架scrapy用21行代码写一个爬虫

Python的爬虫框架scrapy用21行代码写一个爬虫

已知bug

如果多次运行该爬虫,不会覆盖原有的内容,而是追加数据(好像是scrapy的bug)

可拓展内容

     1、定时运行爬虫,当检查到网站更新时获取新数据并发邮件通知

     2、检测数据是否重复

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中dictionary items()系列函数的用法实例
Aug 21 Python
Python实现一个简单的MySQL类
Jan 07 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
简单介绍Python中的JSON使用
Apr 28 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
python write无法写入文件的解决方法
Jan 23 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python两种注释用法的示例
Oct 09 Python
Python爬虫教程知识点总结
Oct 19 Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 #Python
批量获取及验证HTTP代理的Python脚本
Apr 23 #Python
深入理解python中的select模块
Apr 23 #Python
Python3如何解决字符编码问题详解
Apr 23 #Python
Python制作刷网页流量工具
Apr 23 #Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 #Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 #Python
You might like
程序员编程十条戒律
2009/07/09 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python套接字流重定向实例汇总
2016/03/03 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
一看就懂得Python的math模块
2018/10/21 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
感恩节红领巾广播稿
2014/02/11 职场文书
拆迁委托协议书
2014/09/15 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
婚礼答谢词范文
2015/09/29 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
详解python字符串驻留技术
2021/05/21 Python