我使用过两个站点组程序,这些程序是从外部购买的,而不是我自己的。有些地方有限制。当然,没有办法实现某些个性化需求。这是为了倡导自由,这种渣的开源是不能被接受的,在不折腾和死亡的原则下,最好写一套自己,你能赚钱,并说它是折腾的关键第一。
20181021_5bcc0e890f053.jpg结构站组程序的关键节点是什么?
数据捕获(快速,大规模)
抓取内容类型
抓取内容来源
将数据爬网到库中
数据存储,查询(性能)
数据库的选择内容的类型在哪里?
数据关联逻辑,数据读写性能
WEB框架(轻量级,可定制)
 模板引擎演示版的解决方案
Web框架,模板引擎
站组下的网站仅用于信息显示,不需要其他杂乱的功能。因此,可以轻松选择框架,并且可以显示信息。这个渣是写python而不是写php,所以选择基于python作为web框架的flask。
该烧瓶的官方网站引用了jinja2模板引擎,所以我也使用了jinja2
该页面分为三种类型:主页,频道页面,详细页面
抓取内容类型,来源
内容类型分为:
 文本数据抓住百度搜索,搜索结果正文
抓住百度新闻,搜索结果机构
抓取百度搜索,搜索结果汇总
 问答数据抓住百度知道,搜索结果的正文
 图片数据360图像搜索,原始图像地址和360缓存地址
视频数据
视频资源接口
抢方法
网站程序的开始和爬虫程序被放置在韩国机器上,但韩国机器抓住国内网站数据的速度太慢。然后将爬行动物程序分离并置于本地操作中,并将捕获的数据传输到韩国主机。
数据处理
因为您要确保每个站组下的网站具有可读且高度相关的内容,所以外观和单站没有区别。因此,提取网页的完整正文,并过滤掉杂乱的内容,一个关键字下的一些相关内容,已被链接,可以在网页上随便调用。
也就是说,一个单词可以显示N个完整文本信息,摘要,视频信息,图片信息以及与该单词相关的问答信息,这些信息只能满足性能要求。
数据存储
一个通道下有N个关键字,关键字数据和相应的通道数据都放在Mysql中;
抓取工具抓取每个关键字周围的内容,抓取的内容存储在mongodb中,每种内容类型都分为一个集合。
从mysql调用关键字逻辑,并通过关键字id从mongodb的每个集合中获取所需的数据
  nginx、flask设置nginx配置文件将多个域名绑定到Web主程序目录;
PC和移动台使用不同的模板,nginx识别客户UA进行移动跳转自适应;一个nginx配置文件下的域名,可以配置标题,描述,模板调用参数等,确保每个域名,每个页面都是独立的TD,独立的主体内容
后续问题
目前,车站小组计划只是一个试玩版,充其量只是一个玩具,已经可以在车站上了。但是,根据这种渣的经验,估计在捕获关键词数据500,000后,程序估计将不会运行,因为数据查询性能过于严重。
因此,预计渣需要解决以下问题:
1、数据抓取效率极度低下根据关键字,您需要获取5个百度搜索结果文本,5个新闻搜索文本,5个图像,5个问答数据,3个视频,以及各种搜索引擎相关的搜索和下拉关键字,这些都需要抓取。内容量很大,只有一台本地机器正在捕获数据,效率仍然太慢。
因此,考虑在国内安排多台机器,抓取不同的数据,将它们分配到不同的机器以负责爬行,最后将机器捕获的所有数据聚合到存储数据的机器。
2、数据量太大,硬盘不够根据抓取文本中平均500个单词,要抓取的单词的单词数量约为10,000个单词。这抓住了50万字,即50亿字。
一般小说站,存储100万字,可能占用2M硬盘空间,即50亿字,10000M,占用10G空间。听起来很少。但这只是存储数据的容量。是否有必要为网页加载性能启用静态缓存?
因此,如果未来的数据量很大,购买硬盘空间太贵了。怎么解决?缺乏操作和维护经验,现在我必须插入一些SSD,我不知道有哪些其他方法可用。