四季题材=”瀑布题材” href=”http://www.zibotc.com学生题材/” ti瀑布题材tle=”题材网” alt=”819e620dd6a9995956258e68aee0d7f8.png” src=”https:
互联网文学
以互联网为展示平台和传播媒介,借助相关互联网伎俩来表现文学作品及含有一部分那些那些文字作品的互联网好手艺自然产物,当前成为一种新兴的文学现象,并快速兴起,诸多互联网小说学生题材也是层出,今天我运用比影视题材较selenium爬取红袖天香网站小说数据,并做庞大数据可视化分析。
红袖添香建于1999年,全球市场市场争先的女性文学数字版权运营中中商之一,日更新小说5000部,为超过240万注册用户提供更多更多涵盖小说、散文、杂文、诗歌、歌词、剧本故事故事、日志内容等体裁的高质量创视频题材itle=”题材”a=””题材<=””>作和阅读服务,言情职场小说等女性文学写作及写书范围独占高地。包罗包括百度百科)
网页末尾分析
小说题材rong>掀开网页如图所示:
要把小说分类里面的所有的一切小说数据一切抓取下来:一共有50个页面,每页20条数据,一共1000条数据。
先运影视题材用request第三方库请求数据,如下所示所示所示:
impor视频题材短片题材trequesturl=\’https://www.hongxiu.com/category小说题材/f1_f1_f1_f1_f1_f1_0_1\’#第一页urlheader={\’xxx\’:\’xxx\’}re=requests.geturl,headers=headprin学生题材tdata.content.decod\’utf-8\’不测意外发现央求回家去的数据并也没第一页的小说数据有关相关信息,很清楚数据不在网页源码里面,接着经由反省network不测意外发现了这样的的四季题材央求字段:
_csrfToken:btXPBUerIB1DA BWiVC7TspEYvekXtzMghhCMdN43_:1630664902028这个是做了js加密,以是为了避免分析加密方式,运用比较selenium爬取数据可以更快一些。
selenium爬取数据
01末尾测试
fromseleniumimportwebdrivimporttime短片题材url=\’https://y.qq.com/n/ryqq/songDetail/0006wgUu1hHP0N\’driver=webdriver.短片题材Chromdriver.geturl结果正常运转正常地地,也没成绩。
02小说数据
明确要爬取的小说数据有关相关信息
图片链接、称呼、作者视频题材、差别不同类型、否完结、人气、简介
接着经由点击下作文题材一页的按钮观察是否是静态和动态数据:不测意外发现不是url严格的纪律如下所示所示所示:
\’https://www.hongxiu.com/category/f1_f1_f1_f1_f1_f1_0_1\’#第一页的url\’https://www.hongxiu.com/category/f1_f1_f1_f1_f1_f1_0_2\’#第二页的url03分析数据
下面是分析页面数据的代码:
defget_data:ficli四季题材st=[]#存储每一页的数据 item=driver.find_elements_by_xpath”//div[@class=”right-book-list”]/ul/li”foriteminitems:dic={}imgLink=item.find_element_by_xpath”./div[1]/a/img”.get_attribut\’src\’#1.图片链接 2.小说称呼(name3.小说差别不同类型(type..影视题材..dic[\’img\’]=imgLink#……ficList.appenddic这里有几个需要注意的点:
注意xpath语句誊抄,注意细节,不要蜕化;
有关小说简介,有的简介比较长,有换行符,为了便于存储,消费需求运用比较字符串的replac方法把\’n\’交流为空字符串
04翻页爬取
下面是翻页爬取数据的代码:
try:time.sleep3js=”window.scrollTo0,100000″driver.execute_scriptjswhiledriver.find_element_by_xpath”//div[@class=\’lbf-pagination\’]/ul/li[last]/a”:driver.find_element_by_xpath”//div[@class=\’lbf-pagination\’]/ul/li[last]/a”.clicktime.sleep3getFictprintcount,”*”*20count+=1ifcount>=50:returnNoneexceptExceptionase:printe代码说明:
运用比较try
语句,中止极端处置方式,防止有啥十分非常特殊页面的元素无法婚娶也许其它成果。
driv中执行js代码,操作方式形式滚轮,滑动到页面底部。
j=”window.scrollTo0,100000″driver.execute_scriptjstime.sleepn
因为循坏里面也可以可以添加了分析函数(driver定位)消费需求期待数据加载完全。
while
循坏语句,while后面的下一页’
按钮定位,确保循坏的爬取下一页的数据。
运用比较if
语句作为辨别根本基本条件,作为while循坏推出的根本基本条件,接着要作文题材使用return参加函数,break不行啊啊。
titl=[\’imgLink\’,\’name\’,\’author\’,\’types\’,\’pink\’,\’popu\’,\’intro\’]withopen\’hx.csv\’,mode=\’w\’,encoding=\’utf-8\’,newline=\’\’asf:writer=csv.DictWritf,titlwriter.writeheadwriter.writerowdataprint\’写入高兴成\’06先后顺序正常运转
结果如下所示所示,相关信息信息显示的1000条数据:
运用比较selenium爬取数据的一些注意点:
① 点击下一页之后,数据不行啊能瞬间加载完全,一旦数据也没加载完全,那么说说运用webdrivfind_Element_by_xpath语句就会定位不到dom文档上的元素,进而抛出一个错误:
selenium.StaleElementReferenceException:staleelementreference:elementisnotattachtothepagedocument约莫寄义:
所引用的元素已过时,不再依托于当前页面。
发作原由:
普通情况下,这是因为页面中止了不时不断刷新或跳转。
处置方法:
1.再次运用比较 findElement或 findElement方法中止元素定位就可。
2.也许就可要使用webdriver.Chrom.r小说题材efresh不时不断刷新一下网页就可以,还要在前面期待几秒钟再刷新,time.sleep5
相关这个报错的处置方法,参考下面博客:
https://www.cnblogs.com/qiu-hua/p/12603675.html
② 静态和动态点击下一页按钮时,消费需求精准作文题材定位到下一页的按钮,其次很重要的一共成果,selenium掀开深度阅读器页面时,消费需求窗口最大化
由于窗口右侧有一个绝对定位的二维码小窗口假设不窗口最大化,何人该窗口就会遮住下一页按钮遭致无法点击,这个消费需求注意。
数据分析与可视化
掀开文件
importpandaaspddata=pd.read_csv\’./hx.csv\’data.head根据我数据有关相关信息也也可以做如下的可视化展示:
01差异差别不同类型小说占比
typ=[\’现代言情\’,\’古代言情\’,\’玄幻\’,\’玄幻言情\’,\’科幻空间\’,\’仙侠\’,\’古代现代都市\’,\’历史的的\’,\’科幻\’,\’仙侠奇缘\’,\’浪漫的的青春\’,\’其它\’]number=[343,285,83,56,45,41,41,25,14,14,13,40]pyechart饼图
frompyechartimportoptionasoptfrompyecharts.chartimportPage,Pie瀑布题材pie=Pie.add””,[listzforzinziptypes,number],radius=[“40%”,”75%”],.set_global_opttitle_opts=opts.TitleOpttitle=”差异差别不同类型小说占比”,legend_opts=opts.LegendOptorient=”vertical”,pos_top=”15%”,pos_left=”2%”,.set_series_optlabel_opts=opts.LabelOptformatter=”{b}:{c}”pie.rend\’pie.html\’结果如图
由图可知,言情小说占据所有的一切小说半壁山河。
02完毕小说占比
frompyechartimportoptionasoptfrompyecharts.chartimportPage,Piety=[\’已完结\’,\’连载中\’]num=[723,269]pie=Pie.add””,[listzforzinzipty,num].set_global_opttitle_opts=opts.TitleOpttitle=”完毕小说占比”.set_series_optlabel_opts=opts.LabelOptformatter=”{b}:{c}”pie.rend\’pie1.html\’结果如图:
由图可知,仍有超1/4小说正在连载中。
03小说简介词云图展示
天生的.txt文件
withopen\’hx.txt\’,\’a\’,encoding=\’utf-8\’asf:forsindata[\’intro\’]:f.writes+\’n\’初始化设置
#导入呼应的库 importjiebafromPILimportImageimportnumpiasnpfromwordcloudimportWordCloudimportmatplotlib.pyplotasplt#导入文本数据并进行简单的文本处置方式 #去掉换行符和空格 text=open”./hx.txt”,encoding=\’utf-8\’.readtext=text.replac\’n\’,””.replac”u3000″,””#分词,前去结果为词的列表 text_cut=jieba.lcuttext#将分好的词用某个意味象征符号联络开连成字符串 text_cut=\’\’.jointext_cut词云展示
word_list=jieba.cuttextspace_word_list=\’\’.joinword_list#printspace_word_list打印那些那些文字 也可以省略 #挪用资金包PIL中的open方法,读取图片文件,经由numpi中的arrai方法天生的数组 mask_pic=np.arraiImage.open”./xin.png”word=WordCloudfont_path=\’C:/Windows/Fonts/simfang.ttf\’,#设置字体,本机的字体 mask=mask_pic,#设置点景图片 background_color=\’white\’,#设置点景的的颜色 max_font_size=150,#设置字体最大值 max_words=2000,#设置最大显示字数 stopwords={\’\’}#设置停用词,停用词则不在词云途中表示 .generspace_word_listimag=word.to_imagword.to_fil\’h.png\’#代为保管图片 image.show结果如图
这里不能够够从图中看出特别的其他其他内容,也也可以沉思其他一些更加有效的自然而然而然话语分析与处理方法,此处留给读者冤家对头们一起思索。
04根据差别不同类型分析小说热度排行
frompyecharts.chartimportBarfrompyechartimportoptionasoptbar=Barbar.add_xaxilistc[\’types\’].valubar.add_yaxi\’小说热度排行\’,numListbar.set_global_optxaxis_opts=opts.A xisOptaxislabel_opts=opts.LabelOptrotate=45bar.rend结果如图
也也可以看出来,言情小说从古至今都是永世话题…
05差异作者抢手小说占比
经由反省作家写的小说数量,得到以下结果:
data[\’author\’].value_count根据写作数量最多的前三位作家,只写了言情小说,后两位写了多种小说。接上来区分分析这些小说家中言情小说家及其他小说家的热度。
言情小说家热度
frompyechartimportoptionasoptfrompyecharts.chartimportPage,Pieattr=[“希行”,”吱吱”,”青铜穗”]v1=[1383,1315,1074]pie=Pie.add””,[listzforzinzipattr,v1].set_global_opttitle_opts=opts.TitleOpttitle=”言情小说作家热度”.set_series_optlabel_opts=opts.LabelOptformatter=”{b}:{c}”pie.rend\’pie.html\’这三个小说家热度仲伯之间,虽然,热度最高的当属希行
希行,为笔名,原名裴云,女,起点中文网古言代表作家之一,女性互联网文学超人气作者。中国作家协会会员。橙瓜见瀑布题材证·互联网文学20年百强大神作家。2009年创作至今,希行已完毕作品已有11部,创作1000多万字,作品大多简繁出版,其中包括包罗《娇娘医经》君九龄》已低价格低价出售影视权。包罗包括百度百科)
两都事说家热度排行
frompyecharts.chartimportBarfrompyechartimportoptionasoptbar=Bar#指定柱状图的横坐标 bar.add_xaxi[\’玄幻\’,\’奇幻世界天下\’,\’仙侠\’]#指定柱状图的纵坐标,而且也也可以指定多个纵坐标 bar.add_yaxi”唐家三少”,[2315,279,192]bar.add_yaxi”吃西红柿”,[552,814,900]#指定柱状图的标题 bar.set_global_opttitle_opts=opts.TitleOpttitle=”热度小说排行”#参数指定天生的的html称呼 bar.rend\’tw.html\’如图所示,唐家三少玄幻小说愈发更突出,而 吃西红柿三种小说热度愈发平均。
写在最后
这个爬取红袖添香网站小说页面数据,运用比较到selenium中止数据抓取,由于页面的js加密,以是运用比较到selenium接着有关注意点进行总结:
① selenium爬取数据消费需求注意几点:
诸多元素的定位消费需求精确;
由于运用比较selenium消费需求加载js代码,元素消费需求一切加载完全,才智中止定位,以是掀开网页消费需求设置time.sleepn;
接着有关很多网站都有个绝对定位的元素,可以是二维码…,结实在电脑屏幕的位置,不会随之页面滚轮的旋转而移动,以是消费需求页面最大化,防止该窗口遮住页面元素,遭致无法点击或者其它操作方式形式。
② 数据可视化展示的傍晚时分要中止数据濯洗,因为有的数据是不规范的比如会出现这样的错误的的
\’utf-8\’codeccan\’tdecodbyte0xcbinposit2:invalidcontinubyte这是由于编码方式的差异遭致,通俗经由反省页面meta标签的charset属性得到编码方式,设置panda掀开文件时的encod属性值;假设还是报错,也也可以把属性值修改成 \'gb18030\'
<metacharset=”UTF-8″>备注,本文仅以学习交流,有关爬虫浅尝辄止,以防对效力器增加负担。
往期精彩回顾 适宜初学者入门人工操作操作方式智能的路途及资料下载各种机械去去学习及深度去去学习条载等资料打印机器学习在线手册深度去去学习条载专辑《统计学习方法》代码复现专辑 AI基础下载各种机械去学习的数学基础专辑黄海广老师《各种机械去学习课程》视频课
本站qq群851320808参与微信群请扫码:
原文链接:https://blog.csdn.net/fengdu78/article/details/120426041?ops_request_misc=%257B%2522request%255Fid%2522%253A %2522166856496116782429721304%2522%252C%2522scm%2522%253A %252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166856496116782429721304&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-28-120426041-null-null.nonecase&utm_term=%E9%A 2%98%E6%9D%90
言情小说是中国旧体小说的一种,又称才子佳人小说。以讲诉异性朋友冤家相爱为中心,经由残缺的故事情节和具体的状况形貌特征来反映爱情的小心思、形状、事物等社会生活的一种文学体裁。
言情小说差别不同类型很多主要分为古代,现代等题材。其中包括包罗又有重生文、再次再次穿越文、反穿越文、科幻文、宅斗文、宫斗文、玄幻文、公路文等不同题材。包罗包括百度百科)
05数据代为保管
未经允许不得转载:题材网 » Python手把手教你用Python爬取某网小说数据,并进行可视化分析