• python10.28


    星期一:

    今天学习内容略微比较难,总结一句话就是领略了如何利用requests,发送请求,同时运用bs4里面BeautifuSoup(美丽的汤)处理爬取出来的内容,通过for循环吧内容通过弹幕(key)链接,并且利用pandas,转化成二维数列,在通过for以及re,通过一系列花里胡哨的操作,完成数据的爬取及写入TXT,接下来就是运用jieba(结巴)语句进行精确切割,分割之后通过空格“ ”.join()进行重组,通过WordCloud,进行处理后,通过generate生成,mathlotlib.pylot显示。

    今天重复做了两次,第一次照搬照抄,虽然没什么错误,但是不明其理,第二次通过逻辑其实也看着(不然打不出来,脑子没东西),发现了四个错误点,今天就把错误的传上来吧,大家引以为戒!

    import requests
    from bs4 import BeautifulSoup
    import pandas as pd
    import re
    import jieba
    from imageio import imread
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt##错误点
    
    
    header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36'
    }
    url = 'http://comment.bilibili.com/125849178.xml'
    res = requests.get(url = url)
    res.encoding = res.apparent_encoding##为什么
    data = res.text
    soup = BeautifulSoup(data,'lxml')
    # print(soup)
    # print(data)
    d_list = soup.find_all('d')
    dlst = []
    for d in d_list:
        danmu ={}
        danmu['弹幕'] = d.text#如果直接赋值会怎么样?
        dlst.append(danmu)
        #弹幕字典每次都被增加和变为空值
    #接下来要进行数据处理运用pandas
    df = pd.DataFrame(dlst)#如果不进行这个操作可以么?对列表直接进行操作?
    f = open('bi.txt','w',encoding='utf-8')#打开文档
    for i in df['弹幕'].values:#取列表里边每个字典的的value值
        # print(i)
        pat = re.compile(r'[一-龥]+')#写出要求!!!!!!!!!正则表达式[]+
        filter_data = re.findall(pattern=pat,string=i)#这他妈是为什么这么写
        # print(filter_data)
        f.write("¥".join(filter_data))#写入
    f.close()
    """
    
    进行了爬取工作,并且写入了txt文件中
    下一步:::让我想想想,云图,不对,分割,对,先分割,精确分割,之后用wordcloud弄出来,再利用,什么sp什么的显示出来,对
    
    """
    f = open('bi.txt','r',encoding='utf-8')
    data = f.read()
    result = " ".join(jieba.lcut(data))##这里!!!join前边的引号内一定要加空格~~~!!!
    
    print(result)#为什么没有分割开
    f.close()
    
    color_mask = imread('五角星.jpg')
    wc = WordCloud(
        font_path=r'C:WindowsFontssimhei.ttf',
        width=1000,
        height=800,
        mask=color_mask,
        background_color='white'
    )
    wc.generate(result)
    wc.to_file('jjj.jpg')
    plt.imshow(wc)
    plt.show()
    

      

  • 相关阅读:
    在数组中寻找和为定值的n个数
    第九届蓝桥杯省赛第六题---递增三元组
    序列螺旋矩阵
    铁轨
    最长公共子串
    STL之vector,deque学习实例
    jdbc Date问题(util.Date和sql.Date)DatePreparedStatement.set
    inti-mothd
    获取HttpResponse并解析JSON数据
    could not find the main class,program will exit
  • 原文地址:https://www.cnblogs.com/fxsm/p/11756077.html
Copyright © 2020-2023  润新知