• 入门级新闻爬虫


    区块链资讯爬虫项目

    项目需求分析

    项目目标网站

    链得得: 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改写

  • 相关阅读:
    安全和加密
    awk
    CentOS7练习
    CentOS7系统引导顺序以及排障
    网络配置
    RAID阵列搭建
    LVM逻辑卷
    java-web——第九课 request
    java-web——第八课 JSTL的显示格式
    java-web——第七课 JSTL
  • 原文地址:https://www.cnblogs.com/ops-sylar/p/9496097.html
Copyright © 2020-2023  润新知