python讨论qq群:996113038
导语:
最近一直在写爬虫,写过一些爬取“妹子图”,“小视频”之类的爬虫,但是我想了想。咱们公众号虽然是个技术类公众号。但是总得有点文艺气息。所以这一次,我就用爬虫来爬取一下“唐诗三百首”。
首先说一下这个网站:
http://www.zhongguoshici.com/shici/list?cate=%E5%94%90%E8%AF%97%E4%B8%89%E7%99%BE%E9%A6%96
这就是中国诗词网的唐诗三百首。我们就是在这个网站上下载唐诗。
代码及相关资源获取:
关注“python趣味爱好者”公众号,回复“爬取唐诗”获取源代码。
开发工具:
python3.6.4。
需要安装的第三方库:
requests
parsel
re
效果演示:
用视频太麻烦了,直接用图片吧!直接看一看txt文件。
这就是我们把爬取的唐诗保存下来以后的效果。
基本原理:
原理如下:
我们首先要去这个网站上踩点。看一看这个网站的规律。点击审查元素。看一看这个网址有没有什么特点。诗词的内容到底存储在哪个地方。
没错就是这里,我们获取服务器返回的信息后,就需要在这里提取唐诗。我们用的是xpath语法提取的。
title_url=html.xpath('//div[@class="poem_content"]').extract()
然后得到一个包含着唐诗的列表,但是这里面还有一些别的乱七八糟的字符。于是,我们就用正则表达式把里面的诗词全部提取出来。代码如下:
the_poet=re.findall('(.*?)',poet)
这就是正则表达式。
最后,和以前一样,我们用一个txt文件将所有的唐诗全部存储下来。
f=open("poet.txt","a")
for poet in title_url:
the_poet=re.findall('(.*?)',poet)
f.write(str(the_poet[0]))
f.write("\n")
部分代码:
下面是我们的部分源代码:
for i in range(1,4):
print("======================正在爬取========================")
url=base_url+str(i)
response=requests.get(url,headers=headers)
html_str=response.text
html=parsel.Selector(html_str)
title_url=html.xpath('//div[@class="poem_content"]').extract()
f=open("poet.txt","a")
for poet in title_url:
the_poet=re.findall('(.*?)',poet)
f.write(str(the_poet[0]))
f.write("\n")
f.close()
感谢大家观看,有钱的老板可以打赏一下小编哦!
扫描下方二维码,关注公众号
参考资料:
图片来源;https://www.pexels.com/zh-tw/photo/46274/