美文网首页python加油站大数据 爬虫Python AI Sql程序员
我用爬虫爬取了“腾讯云技术社区“所有的文章,看看我得到了什么

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

作者: a3aac2d1b674 | 来源:发表于2017-11-24 11:07 被阅读266次

    作者:应兆康

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

    前言

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

    image

    这次我通过利用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篇文章组成

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

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

    总结

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

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

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

    ikang_kj
    嘿嘿 :)

    相关阅读

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

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

    原文链接:https://cloud.tencent.com/community/article/979437

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/uvpxbxtx.html