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实现划词翻译
Apr 23 Python
python查询mysql中文乱码问题
Nov 09 Python
python实现合并两个数组的方法
May 16 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
May 11 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
Python机器学习应用之工业蒸汽数据分析篇详解
Jan 18 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
一个简单php扩展介绍与开发教程
2010/08/19 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
js replace替换所有匹配的字符串
2014/02/13 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
jQuery中库的引用方法
2018/01/06 jQuery
微信小程序生成二维码的示例代码
2019/03/29 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
Python遍历指定文件及文件夹的方法
2015/05/09 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
python 内置模块详解
2019/01/01 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Numpy 多维数据数组的实现
2020/06/18 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
大学生新闻专业个人自我评价
2013/11/12 职场文书
迟到检讨书大全
2014/01/25 职场文书
亲属关系公证书样本
2015/01/23 职场文书
大学生团日活动总结
2015/05/06 职场文书
写给同事的离职感言
2015/08/04 职场文书
2016寒假假期总结
2015/10/10 职场文书
接收函
2019/04/22 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
详解MySQL集群搭建
2021/05/26 MySQL