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 相关文章推荐
wxPython 入门教程
Oct 07 Python
Python记录详细调用堆栈日志的方法
May 05 Python
pycharm: 恢复(reset) 误删文件的方法
Oct 22 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
Python3中的bytes和str类型详解
May 02 Python
对django的User模型和四种扩展/重写方法小结
Aug 17 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
Python selenium环境搭建实现过程解析
Sep 08 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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
建立动态的WML站点(一)
2006/10/09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php5中类的学习
2008/03/28 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
Highcharts入门之简介
2016/08/02 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
python 类详解及简单实例
2017/03/24 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
基于Django统计博客文章阅读量
2019/10/29 Python
T3官网:头发造型工具
2019/12/26 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
交通安全教育制度
2014/02/02 职场文书
2014年百日安全生产活动总结
2014/05/04 职场文书
答谢会策划方案
2014/05/12 职场文书
质检员岗位职责范本
2015/04/07 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书