2月16日学习记录

1,背诵单词:vice 邪恶;恶习 drop滴;落下;微量  otherwise 另样,用别的方法 bind捆,绑,包括,束缚   eligible 符合条件的 narrative 叙述性的 叙述 tile 瓦片,瓷砖bundle 捆,包,束 mill 磨粉机,磨坊 heave (用力)举,提 gay 快乐的,愉快的 statistical统计的,统计学的 fence 篱笆;围栏;剑术 magnify 放大,扩大 graceful优美的,文雅的,大方的 analyse 分析,分解   artificial 人工的,人造的 privacy 独处,自由,隐私;私生活 tub 木盆,澡盆 feedback 反馈;反应;回授 property 财产,资产upper 上面的;上部的

2,完善了北京信件统计系统的一些功能,爬取了百度信息领域热词并存入mysql并简单实现了词云图功能:

  1,爬取百度热词的URL,存入citiao_list.txt中

import requests
import json
import re
import os
import traceback
from lxml import html
from lxml import etree
from _multiprocessing import send
from _overlapped import NULL
‘‘‘
获取词条的url链接到citiao_list.txt文件
‘‘‘
def getUrlText(url,page):
    try:
        access={"limit": "24",
                "timeout": "3000",
                "filterTags": "%5B%5D",
                "tagId": "76607",
                "fromLemma": "false",
                "contentLength": "40",
                "page": page}
        header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"}
        r=requests.post(url,data=access,headers=header)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        print("连接成功")
        return r.text
    except:
        return "连接失败"

def getJson(html,fpath):
    date=json.loads(html)
    if date and ‘lemmaList‘ in date.keys():
        lemmaList= date.get(‘lemmaList‘)
        for item in lemmaList:
            name = item.get(‘lemmaTitle‘)   #词条名称
            name=re.sub(r"\s+", "", name)
            Desc=item.get(‘lemmaDesc‘)     #词条简介
            Desc=re.sub(r"\s+", "", Desc)
            url = item.get(‘lemmaUrl‘)     #词条链接
            url=re.sub(r"\s+", "",url)
            #citiao=name+"&&"+Desc+"&&"+url+"\n"
            #citiao=name+"&&"+Desc+"\n"
            citiao=url+",\n"
            #citiao=Desc+"---------------"
            print(citiao)
            save__file(fpath,citiao)

 #创建文件
#file_path:文件路径
#msg:即要写入的内容
def save__file(file_path,msg):
    f=open(file_path,"a",encoding=‘utf-8‘)
    f.write(msg)
    f.close         

def main():
    url="https://baike.baidu.com/wikitag/api/getlemmas"
    #pafph="citiao.txt"
    #pfaph="dancitiao.txt"
    #pfaph="fenci.txt"
    fpath="citiao_list.txt"
    page=84
    if(os.path.exists(fpath)):
        os.remove(fpath)
    else:
        for page in range(0,501):
            html= getUrlText(url,page)
            getJson(html,fpath)
            paget=page+1
            print("第%s页"%paget)

main()

  2,通过citiao_list.txt文件中的URL爬取词条名称和简介并存入citiao.txt中

import requests;
import re
import os
import traceback
from lxml import html
from lxml import etree
from _multiprocessing import send
from _overlapped import NULL

#获取HTML内容
def getHTMLText(url):
    access={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"}
    try:
        r=requests.get(url,headers=access)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return "无法连接"

def get_citiao_massage(lst,url,fpath):
    #url="http://baike.baidu.com/item/COUNTA/7669327"
    print(url)
    citiao_html=getHTMLText(url)
    soup=etree.HTML(citiao_html)
    #词条名称dd class="lemmaWgt-lemmaTitle-title"  h1 text()
    name1=soup.xpath("//dd[@class=‘lemmaWgt-lemmaTitle-title‘]/h1/text()")
    name2=soup.xpath("//dd[@class=‘lemmaWgt-lemmaTitle-title‘]/h2/text()")
    name1="".join(name1)
    if "".join(name2)=="":
        name2=""
    else:
        name2="".join(name2)
    name=name1+name2
    #词条详情div class="lemma-summary"  text()
    desc=soup.xpath("//div[@class=‘lemma-summary‘]/div/text()")
    desc="".join(desc)
    desc=re.sub(r"\s+", "", desc)
    url=re.sub(r"\s+", "", url)
    citiao=name+"&&"+desc+"&&"+url+"\n"
    print(citiao)
    save__file(fpath,citiao)
    return citiao

#创建文件
#file_path:文件路径
#msg:即要写入的内容
def save__file(file_path,msg):
    f=open(file_path,"a",encoding=‘utf-8‘)
    f.write(msg)
    f.close

def Run(out_put_file,fpath):
    urls=""
    lsts=[]
    lst=[]
    cond=0
    with open(out_put_file,"r") as f:
        urls=f.read()
    lsts=urls.split(",")
    for i in lsts:
        citiao=""
        citiao=get_citiao_massage(lst,i,fpath)
        if citiao=="":
            continue
        lst.append(citiao)
        cond+=1
        print("\n当前速度:{:.2f}%".format(cond*100/len(lsts)),end="")
    return lst

#主函数
def main():
    fpath="citiao.txt"
    out_put_file="citiao_list.txt"
    if(os.path.exists(fpath)):
        os.remove(fpath)
    else:
        lst=[]
        lst=Run(out_put_file, fpath)
        for i in lst:
            print(i+"aaa")

#程序入口
main()

  3,对citiao.txt中内容进行分词,根据每个词的出现频率展示词云图

import requests;
import re
import os
import traceback
from lxml import html
from lxml import etree
from _multiprocessing import send
from _overlapped import NULL

#获取HTML内容
def getHTMLText(url):
    access={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"}
    try:
        r=requests.get(url,headers=access)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return "无法连接"

def get_citiao_massage(lst,url,fpath):
    #url="http://baike.baidu.com/item/COUNTA/7669327"
    print(url)
    citiao_html=getHTMLText(url)
    soup=etree.HTML(citiao_html)
    #词条名称dd class="lemmaWgt-lemmaTitle-title"  h1 text()
    name1=soup.xpath("//dd[@class=‘lemmaWgt-lemmaTitle-title‘]/h1/text()")
    name2=soup.xpath("//dd[@class=‘lemmaWgt-lemmaTitle-title‘]/h2/text()")
    name1="".join(name1)
    if "".join(name2)=="":
        name2=""
    else:
        name2="".join(name2)
    name=name1+name2
    #词条详情div class="lemma-summary"  text()
    desc=soup.xpath("//div[@class=‘lemma-summary‘]/div/text()")
    desc="".join(desc)
    desc=re.sub(r"\s+", "", desc)
    url=re.sub(r"\s+", "", url)
    citiao=name+"&&"+desc+"&&"+url+"\n"
    print(citiao)
    save__file(fpath,citiao)
    return citiao

#创建文件
#file_path:文件路径
#msg:即要写入的内容
def save__file(file_path,msg):
    f=open(file_path,"a",encoding=‘utf-8‘)
    f.write(msg)
    f.close

def Run(out_put_file,fpath):
    urls=""
    lsts=[]
    lst=[]
    cond=0
    with open(out_put_file,"r") as f:
        urls=f.read()
    lsts=urls.split(",")
    for i in lsts:
        citiao=""
        citiao=get_citiao_massage(lst,i,fpath)
        if citiao=="":
            continue
        lst.append(citiao)
        cond+=1
        print("\n当前速度:{:.2f}%".format(cond*100/len(lsts)),end="")
    return lst

#主函数
def main():
    fpath="citiao.txt"
    out_put_file="citiao_list.txt"
    if(os.path.exists(fpath)):
        os.remove(fpath)
    else:
        lst=[]
        lst=Run(out_put_file, fpath)
        for i in lst:
            print(i+"aaa")

#程序入口
main()

  

3,遇到的问题:

  1,爬取百度百科词条URL时发现百度百科的词条是通过Ajax传的json数据在前端渲染展示的,而且是通过post方式传的数据,因此网上查找,通过requests库的post方法,将参数设置好就能访问到json数据了,然后通过json库的loads方法将json数据转为list类型,从而取得每个词条的URL链接

  2,生成词云图的代码我看的不是太懂

  3,关于对词条分类我初步猜想可以通过对特定的分类根据词条的简介进行模糊查询进行分类

  4,对词条与词条之间的关系图不知道怎么实现

4,明天就上课了,希望在新的学期能学到很多知识

原文地址:https://www.cnblogs.com/lq13035130506/p/12319392.html

时间: 2024-11-12 19:39:28

2月16日学习记录的相关文章

7月16日学习记录

今天学习了html基础知识,认识标签,学习表单,基本能看懂网页基本中语句.明天计划学习CSS. 1.大框架 <html> <head>  放标题等 </head> <body>    网站的正文 </body> </html> 2.标签大都是成对出现的,例外:<br/>(回车)&nbsp(空格)<hr/>(横线). 3.文本中常用的标签:strong(加粗)em(斜体)q blockquote(引用)等

9月6日学习记录

早晨学习了网易云课堂的<Python Web全栈工程师>课程的预习课程<做一个静态网页>.自己手动过了一遍视频教程的代码,过程很成功,明天做这个系列的课后作业.下午,学习了中国大学MOOC课程的<Python网络爬虫与信息提取>.主要是跟着视频重新过了一遍<实战2:股票交易信息的爬取>,除了有个别的问题还需要再搞清楚一点之外,大部分的流程都明白了.明天的任务是再分别分析一下这周课程的两个实战项目.越来越清晰的感觉到自己的基础知识的缺乏.毕竟,到现在为止才学了

1月5日学习记录

1.首先对数据的分析 我觉得首先要了解通用的传统方法是什么,在了解传统方法的过程中,就会对问题就更深的理解. 2.VAE学习 https://blog.csdn.net/Avery123123/article/details/103283558(待看) http://cjc.ict.ac.cn/online/onlinepaper/yfn-201916192006.pdf 这个也介绍了多种类型的VAE.(待看) https://www.cnblogs.com/HYWZ36/p/11416710.

2月1日学习记录

1,背诵英语单词20个左右: shell:贝,卵    delicate:纤弱的,熟练的  treat:威胁,恐吓  utmost:极度的,最大的  wit:机智  stool:凳子  strictly:严格的,严厉的  facility:设施  recorder:录音机       similarly:相似的,类似的  drift:流动,随意移动  helmet:头盔,钢盔  summarize:总结,概述  terminal:终结,终端  utilize:利用,使用  shepherd:牧羊

2月2日学习记录

1,背诵单词:substitute:替代者,替代物  valid:有效的  wax:蜡,蜡状物  stubborn:顽固的,固执的  abstract:抽象的  ankle:踝关节,踝  occasionally:偶尔  trace:踪迹   export:出口,输出  scan:扫描,细看  stale:陈腐的,不新鲜的  venture:冒险行事  amongst:处在.....中  calculate:计算,估计  victim:牺牲者,受害者 aluminium:铝  explode:使

2月3日学习记录

1,背诵单词:bay:海湾  earn:赚的  cheerful:欢乐的  cash:现金  basin:盆,盆地  attain:达到  effort:努力  cassette:盒式录音带  civilization:文明  cock:公鸡  cabinet:内阁,橱柜  copper:铜币  fierce:凶猛的  fame:名声  cheque:支票  communism:共产主义  emit:发出  curtain:窗帘  conversation:会话 2,学习Python爬虫的Scr

2月5日学习记录

1,背诵单词:outlook:前景,展望  operate:做手术  peach:桃子  rank:排列  oxygen:氧气  overseas:海外的  particular:特别的  paste:粘贴  patch:眼罩  pack:包裹  participate:参加  overtake:追上  modern:现代的  merchant:商人  path:小路  likewise:同样的  ministry:部门  Pacific:太平洋  minority:少数 2,学习spark视频

2月6日学习记录

1,背诵单词:dive:潜水  wreck:残骸,毁灭  vitamin:维生素  distribution:分配  dismiss:解雇  Soviet:苏维埃  dialect:方言  wrist:手腕  interpreter:解释着  spider:蜘蛛  destination:终点  van:厢式货车  Fahrenheit:华氏温度计的  worship:崇拜  step:步,脚本  tomb:坟墓  tight:紧的  vase:花瓶  twinkle:闪烁的 2,学习spark

2月9日学习记录

1,背诵单词:obstacle:障碍物  gum:口香糖  fridge:电冰箱  combination:结合  fasten:系牢  purchase:购买  leak:漏出  inhabitant:居民  express:快递  conceal:隐瞒   digest:消化  beggar:乞丐  apology:道歉认错  suspicion:怀疑  aid:帮助  yield:投降  dew:水珠  transmit:传输  stable:稳定的  spot:点 2,做spark实验4