李白一网打尽 python3版本

分类:网校动态日期:2024-08-27 04:41:13人气:


代码是采集多页李白诗词,每篇诗词写入1个TXT文本;

当时使用python 2.7,今天把它稍微改动一下,在 python3 下正常运行;

李白一网打尽 python3版本

网上很多Python学习教程谬误还是不少的,所以今天就把这个简单的采集代码发上来,抛砖引玉!

代码对于初学者有几个重点:

  • 1,href 超链接的组合;
  • 2,下一页的超链接采集合成;
  • 3,根据 href 超链接,通过页面标签提取该页诗词文本的方法;
#coding:utf-8#'http://www.shicimingju.com'#采集多页诗词网站,并储存为TXT文件;#-- 读取写入txt段再思考;import sysimport re, os, random, requestsfrom bs4 import BeautifulSoup as BP base='http://www.shicimingju.com'url='http://www.shicimingju.com/chaxun/zuozhe/1.html'visithead= {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:58.0)'+ 'Gecko/20100101 Firefox/58.0'} def geturls(url): print ('--------------------------------------------------------------------------------') r= requests.get(url, headers=visithead) html=r.text.encode(r.encoding) soup=BP(html, 'lxml') div=soup.find('div', attrs={'class': 'www-shadow-card www-main-container'}) hrefs=[l.attrs['href'] for l in div.findAll('a') if l.has_attr('href') ] hrefs=[base + i for i in hrefs] print (hrefs) n=soup.find('div' , attrs= {'class':'pagination www-shadow-card'}) n2=n.find(re.compile('a'), text = re.compile(u'\u4e0b\u4e00\u9875')) nexturl=[base+i for i in re.findall(r'[/].*.html',str(n2))] print (u'\u4e0b\u4e00\u9875', '--------------------------------') print (nexturl) ans={} ans['hrefs']= hrefs ans['nexturl']=nexturl[0] return(ans) def txt(url) : r= requests.get(url) html= r.text.encode(r.encoding) soup= BP(html, 'lxml') x={'class': 'shici-container www-shadow-card'} # 一,对 div 段的传统处理法; # c0=soup.find('div', attrs=x).text # c0=re.sub(r'[ ]', '', c0) # c0=re.sub(r'[\xa0]', '', c0) # 二,对text div段的标题、作者、诗词内容的单独处理; c1=soup.find('div', attrs=x).h1.text #标题; c2=soup.find('div', attrs=x).find('div', attrs={'class': 'shici-info'}).text #作者 c3=soup.find('div', attrs=x).find('div', attrs={'class': 'shici-content'}).text #内容 c3=re.sub(r'[\xa0]', '', c3) #删除特殊字符; c3=re.sub(r'[ ]{4}', '', c3) #删除N个空格; t=re.sub(r'[/]', ' ',c1) #标题去除斜线; filedir= os.getcwd() + '/ok' if not os.path.exists(filedir): os.mkdir(filedir) with open(filedir + '/%d-%s.txt' % (i+1,t), mode='w') as f: c0 = c1 +u'\n'+ c2 + c3 #加换行; f.write(c0) print (c0) ans= geturls(url)allhrefs= ans['hrefs'] while ans['nexturl']: try: ans=geturls(ans['nexturl']) allhrefs= allhrefs+ans['hrefs'] except: print ('This is last page...!\n') print (u'总计找到 ', len(allhrefs), u'条数据!') input ('Press any key to write to txt files!') break for i in range(len(allhrefs)//100): txt(allhrefs[i]) print (i+1,'......done!') print ('------------------------------------------------------------------------------')

采集过程:

李白一网打尽 python3版本

采集结果:

采集文本格式:

同理,将主链接更换为其他作者,即可获取其他作者全部或者定义数量的诗词;

完整代码截屏:

用户评论

久爱不厌

这篇文章简直是Python初学者的福音!通过详细解析李白一网打尽的Python3版本,作者不仅让读者轻松上手,还深入理解了代码背后的逻辑。强烈推荐给想要快速掌握Python编程技巧的朋友。

    有16位网友表示赞同!

栀蓝

哎呀,这篇文章简直就是Python进阶者的噩梦。对于那些已经对Python略知一二的人来说,内容过于基础,缺乏深度分析和实践案例,让人感觉像是在浪费时间。

    有19位网友表示赞同!

月下独酌

读完这篇文章,我仿佛穿越回了大学编程课,重温了Python的魅力。作者将李白一网打尽的Python3版本讲解得既生动又有趣,让我对编程有了新的认识。

    有11位网友表示赞同!

打个酱油卖个萌

我对Python的学习热情已经被这篇文章彻底浇灭了。语言解释、代码示例都太过简单,没有提供足够的挑战性,无法激发我的学习动力。

    有18位网友表示赞同!

荒野情趣

这篇文章简直就是Python新手的宝典!作者不仅讲解了基础知识,还巧妙地融入了实际应用案例,让读者能够迅速掌握并运用Python解决实际问题。

    有6位网友表示赞同!

你与清晨阳光

虽然文章中提到了李白一网打尽的Python3版本,但我发现其中的代码示例过于抽象,缺乏具体的上下文情境,使得阅读体验大打折扣。

    有14位网友表示赞同!

空巷

读完这篇文章,我感到非常满足。作者不仅详细介绍了Python3版本的关键特性,还提供了丰富的练习题,帮助我巩固所学知识。

    有13位网友表示赞同!

如梦初醒

这篇文章的内容过于零散,没有形成一个系统的框架。对于像我这样的编程新手来说,很难从中找到清晰的学习路径。

    有14位网友表示赞同!

娇眉恨

作为Python编程爱好者,我非常喜欢这篇文章的深入剖析。它不仅涵盖了基础知识,还有对高级特性的详细介绍,让我受益匪浅。

    有6位网友表示赞同!

不识爱人心

读完这篇文章,我觉得自己仿佛走进了一个全新的编程世界。作者通过生动的例子,将复杂的概念简化,让我对Python的理解更上一层楼。

    有5位网友表示赞同!

龙吟凤

这篇文章的结构混乱,信息量过大,导致阅读起来非常吃力。对于希望快速入门Python的新手来说,这并不是一个好的选择。

    有13位网友表示赞同!

你身上有刺,别扎我

对于想要深入了解Python3版本功能的读者来说,这篇文章是不可多得的资源。作者以简洁明了的方式,阐述了各个功能点,值得收藏。

    有17位网友表示赞同!

?娘子汉

读完这篇文章后,我对Python的热爱更加深了。作者不仅讲解了技术细节,还分享了自己的编程心得,让我对未来的学习充满了期待。

    有10位网友表示赞同!

念旧情i

这篇文章的描述太过抽象,没有提供足够的实例来辅助理解。对于我这样需要具体操作来学习的人来说,阅读体验并不理想。

    有6位网友表示赞同!

心亡则人忘

对于Python3版本的学习,这篇文章给予了我很大的帮助。作者不仅讲解了核心概念,还分享了一些实用的编程技巧,让我在实践中得到了提升。

    有18位网友表示赞同!

涐们的幸福像流星丶

我非常欣赏这篇文章的深度和广度。它不仅覆盖了Python的基础知识,还深入探讨了高级主题,满足了不同层次读者的需求。

    有16位网友表示赞同!

歆久

这篇文章的讲解过于理论化,缺乏实际操作的指导。对于希望立即动手实践的读者来说,可能需要寻找其他资源来补充。

    有19位网友表示赞同!

微信名字

读完这篇文章后,我对Python的未来充满信心。作者不仅讲解了当前版本的功能,还展望了未来的发展趋势,让人对未来充满期待。

    有6位网友表示赞同!

本文永久网址:

获取方案
咨询电话
13697281325
TOP 在线咨询
TOP TOP