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

作者:应兆康

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

前言

闲来周末练习下爬虫 就拿腾讯云技术社区来开刀, 哈, 经典皮卡丘开头

这次我通过利用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 嘿嘿 :)

相关阅读

Python3 爬虫中代理的使用方法 爬虫实战 : 爬虫之 web 自动化终极杀手(下) 爬虫实战:爬虫之 web 自动化终极杀手 ( 上)

此文已由作者授权腾讯云技术社区发布,转载请注明原文出处

原文链接:cloud.tencent.com/community/a…

海量技术实践经验,尽在腾讯云社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目介绍: 一款商城购物 App,商品数据采用 Python 爬虫爬取自某小型电商平台,服务端部署在腾讯云。项目主要分为:主页、分类、购物车、消息、和“我的”模块。特点 采用 Kotlin 语言进行开发 采用 MVP + dagger 2 架构 组件化开发,减少模块间的耦合 采用 Retrofit + RxKotlin 进行网络请求 使用 ARouter 进行页面路由和 EventBus 进行全局事件广播 使用到的第三方开源库 项目名称 简介 RxKotlin RxJava bindings for Kotlin RxAndroid 在 Android 中使用 RxJava ARouter 帮助 Android App 进行组件化改造的路由框架 Retrofit HTTP 请求工具库 OkHttp 适用于 Android 和 Java 应用的网络请求框架 Dagger 强大的依赖注入框架 Glide 好用的图片加载框架 CircleImageView 圆形图片不复杂 MultiStateView 通用状态切换视图 RxBus 适用于 Kotlin 的 RxBus FlowLayout Android 流式布局,支持单选、多选等,适合用于产品标签等 leakcanary 使用于 Android 和 Java 和内存泄漏检查工具 BadgeView 支持自由定制外观、拖拽消除的 MaterialDesign 风格 Android BadgeView使用到的工具/网站 网站名称 简介 Iconfont 阿里巴巴矢图标库,提供了本项目中的大部分矢图 aconvert 在线调整图片大小(PNG, JPG 和 GIF) convertio 在线图像文件转换器,支持 SVG 转换成 PNG logoko 在线 logo 设计 图帮主 在线平面设计 shields metadata 图标设计 compresspng 在线压缩 PNG 图像

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值