zoukankan      html  css  js  c++  java
  • 入门级新闻爬虫

    区块链资讯爬虫项目

    项目需求分析

    项目目标网站

    链得得: http://www.chaindd.com/
    金色财经: https://www.jinse.com
    巴比特: http://www.8btc.com/news

    爬虫目标分析

    1,链得得和金色财经首页结构相对简单,资讯新闻的爬取特征明显。无需太多特殊抓取方法。
    2,巴比特首页广告和外链较多,经过分析直接抓取新闻页。
    3,3大网站都是动态网站,资讯需要通过selenium进行动态抓取
    4,对于那些时效性不强的老旧资讯,可以适当地舍弃。只抓取发布时间较新地资讯

    爬虫存储结构(数据库)

    _id				: 唯一标识
    spider_time		: 采集时间
    news_link       :新闻原链接
    news_img        :新闻原首页图
    news_title      :新闻原标题
    news_author     :作者
    news_time       :来源发布时间(可能需要增加一个本地发布时间)
    news_keyword    :关键字
    news_source     :来源媒体
    news_synopsis   :简介
    news_content    :正文
    status          :后台使用
    category_id     : 后台使用
    news_md5        : 正文md5值
    
    爬虫开发说明

    1,爬虫目标链接:['http://www.8btc.com/news','http://www.chaindd.com','https://www.jinse.com/']

    2,利用selenium模拟浏览器访问,获取首页源代码,通过beautifulsoup获取HTML代码结构,并分析抓取最新资讯正文地链接地址列表。get_html_code方法

    3,将取到地正文地址列表和数据库中地链接地址比对,筛选出没有抓取的正文。links_changed方法。

    4,获取列表后再将每个正文地址传入get_html_code获取正文页源代码,在获取前会使用http_status判断链接是否可用

    5,利用正则表达式和其他工具编写news_page_info方法,提取需要资源。并通过string_format,filter_html_tags方法过滤一些不必须要地html代码和信息。

    6,将正文内容传入update_news_info方法,更新到数据库

    7,8btc的网站使用正文MD5值去对比,从而判断新闻是否采集。

    爬虫程序测试

    暂无(已在服务器正常运行一周时间无报错,工作日每小时基本都有5条左右资讯)

    PS: 项目地址:https://github.com/sylarjiang/spider
    过几天有空了准备用scrapy改写

  • 相关阅读:
    分段、分页&&内存碎片、外存碎片
    mysql中的事务处理
    算法的在线演示网站
    为什么要使用树以及使用什么树
    平衡多叉树--B-Tree(B树)
    MVCC--多版本并发控制机制
    mysql中的锁
    平衡二叉树--红黑树(RB-Tree)
    平衡二叉树--AVL树
    自平衡方式--旋转
  • 原文地址:https://www.cnblogs.com/ops-sylar/p/9496097.html
Copyright © 2011-2022 走看看