Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践
摘要:这篇文┞仿我们将对一些各类各样的博客的风行度相对于他们在谷歌上的排名进行一个分析。所有代码可以在 github 上找到。
设法主意来源
我一向在想,各类各样的博客天天到底都有若干页面浏览量,以及在博客浏览受众中最受迎接的是什么编程说话。我也很感兴趣的是,它们在谷歌的网站排名是否与它们的受迎接程度直接相干。
为了答复这些问题,我决定做一个 Scrapy 项目,它将收集一些数据,然后对所获得的信息履行特定的数据分析和数据可视化。
- def parse(self, response):
- site_data = response.xpath('//div[@id="box_1"]/span/text()').extract()
- views_data = list(filter(lambda r: '$' not in r, site_data))
- if views_data:
- blog_data = response.meta.get('blog')
- traffic_data = {
- 'daily_page_views': int(views_data[0].translate({ord(','): None})),
- 'daily_visitors': int(views_data[1].translate({ord(','): None}))
- }
- blog_data.update(traffic_data)
- yield blog_data
第一部分:Scrapy
我们将应用 Scrapy 为我们的工作,因为它为抓取和对该请求处理后的反馈进行治理供给了干净和结实的框架。我们还将应用 Splash 来解析须要处理的 Javascript 页面。Splash 应用本身的 Web 办事器充现代劳,并处理 Javascript 响应,然后再将其重定向到我们的爬虫过程。
- 我这琅绫腔有描述 Scrapy 的设置,也没有描述 Splash 的集成。你可以在这里找到 Scrapy 的示例,而这里还有 Scrapy+Splash 指南。
获得相干的博客
评估结论:Java 天天有跨越 400 万的浏览量,PHP 和 Go 有跨越 200 万,R 和 JavaScript 也冲破了百万大年夜关。
第一步显然是获取数据。我们须要关于编程博客的谷歌搜刮结不雅。你看,如不雅我们开端仅仅用谷歌本身来搜刮,比如说萌芽 “Python”,除了博客,我们还会获得很多其它的器械。我们须要的是做一些过滤,只留下特定的博客。荣幸的是,有一种叫做 Google 自定义搜刮引擎(CSE)的器械,它能做到这一点。还有一个网站 www.blogsearchengine.org,它正好可以知足我们须要,它会将用户请求宛转给 CSE,如许我们就可以查看它的萌芽并反复应用它们。
所以,我们要做的是到 www.blogsearchengine.org 网站,搜刮 “python”,并在一侧打开 Chrome 开辟者对象中的收集标签页。这截图是我们将要看到的:
凸起显示的是 blogsearchengine 向谷歌委派的一个搜刮请求,所以我们将复制它,并在我们的 scraper 中应用。
每日网页浏览量与谷歌排名
这个博客抓取爬行器类会是如下如许的:
- class BlogsSpider(scrapy.Spider):
- name = 'blogs'
- allowed_domains = ['cse.google.com']
- def __init__(self, queries):
- super(BlogsSpider, self).__init__()
- self.queries = queries
与典范的 Scrapy 爬虫不合,我们的办法覆盖了 __init__ 办法,它接收额外的参数 queries,它指定了我们想要履行的萌芽列表。
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 多关于索引,分为以下几点来讲解(技巧文): 索引的概述(什么是索引,索引的优缺点) 索引的根本应用>>>详细阅读
本文标题:如何分析博客中最流行的编程语言
地址:http://www.17bianji.com/lsqh/38842.html
1/2 1