python爬取唐诗三百首

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文件。

python爬取唐诗三百首_第1张图片

这就是我们把爬取的唐诗保存下来以后的效果。


基本原理

原理如下:

我们首先要去这个网站上踩点。看一看这个网站的规律。点击审查元素。看一看这个网址有没有什么特点。诗词的内容到底存储在哪个地方。

python爬取唐诗三百首_第2张图片

没错就是这里,我们获取服务器返回的信息后,就需要在这里提取唐诗。我们用的是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/

你可能感兴趣的:(python爬取唐诗三百首)