一.背景

最近玩爬虫,各种想爬,scrapy又非常好用。想多爬一点东西,决定爬一爬各大网站的热点新闻。
想到就开始做了哈

二.上代码

1.开始搭建项目

scrapy startproject crawl_everything
#起了个叼叼的名字

2.修改配置文件

  • settings.py设置文件:
ROBOTSTXT_OBEY = False
# 下载延时
DOWNLOAD_DELAY = 0.5#增加user-agent 这个可以拿自己浏览器的。也可以网上搜一些其他的。东西很多的
USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'

初步设想,我只需要存取文章的标题和内容链接和抓取时间

  • 修改items.py
    那么定义的item如下:
class CrawlEverythingItem(scrapy.Item):# 文章标题jk_title = scrapy.Field()# 文章链接jk_url = scrapy.Field()# 文章时间有可能没有jk_date = scrapy.Field()

3 : 生成第一个网站文件【豆瓣】:

#注意:这个命令在spiders目录执行

scrapy genspider douban_spider www.douban.com

上个结果图:

#先抓取豆瓣上的【24小时话题趋势】看看大家都在讨论啥
目标网址:https://www.douban.com/gallery/

知道目标了就开始爬吧:通过chrome的debug功能找到对应标签

 def parse(self, response):trends=response.css('ul.trend > li > a')for trend in trends:item = CrawlEverythingItem()item['jk_title']=trend.css('a::text').extract_first()item['jk_url'] = trend.css('a').attrib['href']yield item

程序这就写好了。运行一下

scrapy crawl douban_spider


可以看到确实是能把文章给爬到。
但每次需要输入命令颇为麻烦。
为了简单弄了个main函数主程序【mainCrawlEveryThing.py】,方便启动和debug
内容如下:

# coding: utf-8
from scrapy.cmdline import execute
import sys
import ossys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(['scrapy', 'crawl', 'douban_spider'])  # 你需要将此处的douban_spider替换为你自己的爬虫名称

运行程序,效果和在cmd里输入命令效果一致。

4 : 数据入库:

接下来数据爬到了该入库了。
新建了一个数据库和一张表

create database crawl_everything;drop TABLE `article_info`;
CREATE TABLE `article_info` (`article_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文章id',`jk_source` varchar(50) DEFAULT NULL COMMENT '文章来源',`jk_title` varchar(200) DEFAULT NULL COMMENT '文章标题',`jk_url` varchar(200) DEFAULT NULL COMMENT '文章url',`jk_status` varchar(50) DEFAULT '0' COMMENT '状态 0:禁用,1:正常',`jk_remark` varchar(500) DEFAULT NULL COMMENT '备注',`jk_create` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`article_id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='文章相关';

修改配置文件settings.py

ITEM_PIPELINES = {'crawl_everything.pipelines.CrawlEverythingPipeline': 400
}

修改配置文件pipelines.py
然后保存数据更改一下

import  pymysql
import datetime;
import sys;
reload(sys);
sys.setdefaultencoding("utf8")class CrawlEverythingPipeline(object):def __init__(self):# 连接MySQL数据库self.connect = pymysql.connect(host='localhost', user='root', password='root1234', db='crawl_everything', port=3307)self.cursor = self.connect.cursor()def process_item(self, item, spider):# 往数据库里面写入数据self.cursor.execute('INSERT INTO crawl_everything.article_info( jk_source, jk_title, jk_url, jk_remark, jk_create) ''VALUES("{}","{}","{}","{}","{}")'.format(item['jk_source'], item['jk_title'],item['jk_url'],item['jk_remark'],datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))self.connect.commit()return item# 关闭数据库def close_spider(self, spider):self.cursor.close()self.connect.close()

再次重新运行主函数,爬取到的数据已经入库

后续在完善:先开门红一个豆瓣。逐步完善
git已上传:https://github.com/jackssybin/crawl_everything

来来scrapy爬取各大网站每日热点新闻相关推荐

  1. scrapy爬取知名问答网站(解决登录+保存cookies值+爬取问答数据)--完整版完美解决登录问题

    菜鸟写Python:scrapy爬取知名问答网站 实战(3) 一.文章开始: 可能看到这篇文章的朋友,大多数都是受慕课网bobby讲师课程的影响,本人也有幸在朋友处了解过这个项目,但是似乎他代码中登录 ...

  2. 【python实现网络爬虫(5)】第一个Scrapy爬虫实例项目(Scrapy原理及Scrapy爬取名言名句网站信息)

    Scrapy介绍 总共有五部分组成的:具体的流程可看图示 引擎.调度器.下载器.蜘蛛和项目管道 爬取流程 针对于每个URL, Scheduler -> Downloader -> Spid ...

  3. 用Python Scrapy爬取某电影网站并存储入mysql

    爬取目标:javlib,使用框架Scrapy 首先使用在命令行里 scrapy startproject projectname 和 scrapy genspider spidername 指令创建爬 ...

  4. 基于Scrapy爬取伯乐在线网站

    标题中的英文首字母大写比较规范,但在python实际使用中均为小写. 2018年7月20日笔记 Scrapy官方文档网址:https://doc.scrapy.org/en/latest/topics ...

  5. Scrapy爬取某装修网站部分装修效果图

    爬取图片资源 spider文件 from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpid ...

  6. 用scrapy爬取淘车网站,选取宝车

    哈喽你们好啊 最近有这样一个作业,本来想偷懒,在csdn上找一个代码,复制粘贴完成就

  7. 四十一、完成scrapy爬取官方网站新房的数据

    @Author:Runsen 文章目录 前言 分析网页 新建项目 加请求头 搞定item 首页调试 详情页调试 保存json 前言 在前几天,接到一个大学生的作业的爬虫单子,要求采用scrapy爬取链 ...

  8. 西山小菜鸟之Scrapy学习笔记---爬取企查查网站公司基本信息

    前言 本文主要采取cookie登录的方式爬取企查查网站的公司的基本信息,后期会继续发布关于爬取企查查网站上的公司的裁判文书信息.链接为:企查查  本文中若存在不详细的地方欢迎各位大神网友提问,若有错误 ...

  9. scrapy爬取表情包使用flask搭建搜索网站

    本文以doutula为演示站点,详细说明搭建一个自己的表情包搜索网站的过程.主要步骤如下: 1. scrapy爬取表情包并存入mysql 2. flask搭建搜索网站 准备工作,anaconda py ...

最新文章

  1. linux下获取系统时间 和 时间偏移
  2. Labview串口通信
  3. oracle跨库插入数据,Oracle跨数据库查询并插入实现原理及代码
  4. create-react-app应用的入口定义
  5. CentOS7 安装 webgoat 7.1 简介
  6. Android使用token维持登陆状态的方法
  7. Linux创建守护进程
  8. Pytorch中DNN入门思想及实现
  9. 进一步的去了解正则[一]
  10. Ubuntu 14.10 下安装java反编译工具 jd-gui
  11. Centos查看已经安装的软件或者包
  12. linux下面修改默认的shell
  13. 基于vue-cli的快速开发框架
  14. mysql b树深度_为什么Mysql用B+树做索引而不用B树
  15. 自动化部署关于在ubuntu下的docker容器折腾小记
  16. prince2 成功的项目管理_我的PRINCE2故事
  17. c语言在线翻译器,command(c语言翻译工具)
  18. 2020ICPC 昆明热身赛 C.Statues(小思维)
  19. 联通物联卡为什么没有网络_联通物联卡的资费和优势怎样
  20. 多传感器融合算法,单目测距、基于双目,长焦短焦,图像拼接,环视等

热门文章

  1. Ansible剧本的使用及演示(三)
  2. 拉普拉斯变换-常微分方程
  3. 利用SEO技术赚钱经典案例分享
  4. 提升决策效率,恒创包装借ERP走幸福企业路
  5. 提升园区服务水平,优化营商环境该从哪些方面入手
  6. php 三种文件下载的实现
  7. kk音标导读(上):赖世雄老师26个英语字母导读示范 (附我备注)
  8. 【电商运营】教你这几招,告别无效预设回复
  9. 八代的cpu能装服务器系统吗,8代i5能不能装win7
  10. Linux 服务器CPU超高如何快速定位