我用爬虫爬取了“腾讯云技术社区“所有的文章,看看我得到了什么

我用爬虫爬取了“腾讯云技术社区”所有的文章,看看我得到了什么

前言

闲来周末练习下爬虫

就拿腾讯云技术社区来开刀, 哈, 经典皮卡丘开头

这次我通过利用Python爬虫

加上一个"不完美"的分词系统

构建了,腾讯云技术社区所有文章的词云,来看看总体大概都写了什么

嘻嘻嘻:)

正文

编程思路

  1. 获取所有文章的地址
  2. 对单文章页进行内容提取
  3. 将所有文章进行内容提取,并将结果存入MongoDB数据库中
  4. 利用分词系统和wordcloud进行词云的构建

注:存储所有文章地址前,我加了一个随机数,后期随机抽取文章进行提取

防止因日期不同导致结果具有局部性

获取文章列表页,所有的文章信息

保存格式为:

  • index 随机数索引
  • title 文章名
  • address 文章地址
  • content 文章内容

    def get_one_page_all(self, url):
        try:
            html = self.get_page_index(self.baseURL)
			# 采用BeautifulSoup解析
            soup = BeautifulSoup(html, 'lxml')
            title = soup.select('.article-item > .title')
            address = soup.select('.article-item > .title > a[href]')
            for i in range(len(title)):
			# 生成随机索引
                random_num = random.randrange(0, 6500)
                content = self.parse_content('https://www.qcloud.com' + address[i].get('href').strip())
                yield {
                    'index' : random_num,
                    'title':title[i].get_text().strip(),
                    'address' : 'https://www.qcloud.com' + address[i].get('href').strip(),
                    'content' : content
                }
		# 遇到索引错误时跳过
        except IndexError:
            pass

解析文章内容
    def parse_content(self, url):
        html = self.get_page_index(url)
        soup = BeautifulSoup(html, 'lxml')
	    #这里直接用了class为J-article-detail的div里面的内容
        content = soup.select('.J-article-detail')
        return content[0].get_text()

结果

这里我就直接把最后生成的结果放出来了

由于分词系统不是很好,导致结果不是很理想

这里我利用了正则表达式,将内容中所有非中文的字符去掉了

由于个人计算机配置不是很好,我将结果分为了20份,每份均为随机选取的100篇文章组成

这就是所有文章生成的词云,分词和筛选不是很好,导致数词、人称名词多

总结

可以看出, 腾讯云技术社区上的文章,大部分都是和数据有关的

哈哈,不是很理想,待日后改善一下(词的筛选)

最后打个小广告,希望大家关注下我的公众号: ikang_kj

嘿嘿 :)

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

R语言可视化——ggplot的theme订制

ggplot作图系统在R预言诸多可视化包中之所以如此的风靡,除了它拥有自己的图层理念之外,我觉得还要归功于它对于图表细节元素的灵活调整。 对于ggplot的初学...

2433
来自专栏tkokof 的技术,小趣及杂念

“疑难杂症”又二记

  目前开发的游戏很多地方都用到了Hotween,个人感觉还是挺不错的(题外话,Hotween的第二版Dotween应该也快正式Release了,各种改进令人期...

713
来自专栏wOw的Android小站

[Python]写给Dr.Wu的简单爬虫例子

这次要爬的数据来自网站:http://www.qlaee.com/zhuanlist.jsp?flag=3&p=1&columnumber=302&codemy...

622
来自专栏生信技能树

【直播】我的基因组61:scalpel软件找indel

那么现在正式的开始第61讲: 其实这次的call variation的软件,不仅仅是找到SNV,也顺便找到了indel,只是可能不太准确。一般业界的公认标准是 ...

35910
来自专栏石瞳禅的互联网实验室

Awesome Go!高玩Gopher都会参考的Go资源集合

Awesome的中文意思就是令人惊叹的。在Github上,Awesome早已成为某种领域资源集合的通用前缀,至于为什么要用Awesome,小编也无从得知,只知道...

471
来自专栏IT大咖说

关于 Unicode 每个程序员应该知道的 5 件事

摘要 Unicode是一个令人难以置信的有用标准,它能使全世界的计算机、智能手机和智能手表以同样的方式显示相同的信息。不幸的是,它的复杂性使它成为了欺诈分子和恶...

2637
来自专栏Web 开发

最近做的几件事

MVC模型,把前、后以及中间控制器分离了,3样东西,分开写,Coding的时候,专注于某一个细节即可,最后再联动调试。

630
来自专栏编程微刊

【前端图表】echarts散点图鼠标划过散点显示信息

1413
来自专栏java一日一条

关于 Unicode 每个程序员应该知道的 5 件事

上周末,曝出了山寨WhatsApp Android应用程序的新闻,看似由相同的开发者提供作为了官方应用程序。欺诈分子通过在开发者名字中包含unicode非输出空...

602
来自专栏腾讯Bugly的专栏

WebVR如此近 - three.js的WebVR示例程序解析

关于WebVR 最近VR的发展十分吸引人们的眼球,很多同学应该也心痒痒的想体验VR设备,然而现在的专业硬件价格还比较高,入手一个估计就要吃土了。但是,对于我们...

3348

扫码关注云+社区