【python爬虫】《中华诗词大会》诗词接龙代码实现
2020-02-02 12:44
771 查看
# 爬取网站:中华古诗文网 # 诗词接龙 #Author:Eshine #E-mail:732656715@qq.com import requests from my_fake_useragent import UserAgent from lxml import etree import random import re from pypinyin import lazy_pinyin class FlyFlowerToken: def __init__(self): self.url = 'https://so.gushiwen.org/shiwen/default_4A111111111111A{}.aspx' self.headers = {"User-Agent": UserAgent().random()} self.poetry_list = [] # 起始令 self.token = '月' def get_html(self, url): ''' 获取页面 :param url: 需要获取的页面的url :return: 页面的html源码字符串 ''' return requests.get(url=url, headers=self.headers).content.decode('utf-8') def parse_html(self, html_str): ''' 解析页面 :param html_str: 需要被解析字符串 :return: 被解析后的诗句的列表 ''' html = etree.HTML(html_str) poetry = html.xpath('//div[@class="contson"]//text()') for p in poetry: k = p.strip() m = re.split(r'[。,?,!,;]', k) for i in m: if ',' in i: self.poetry_list.append(i) random.shuffle(self.poetry_list) def check_poetry(self): ''' 按诗词接龙检查诗词别表的诗句 :return:TRUE ''' for poetry in self.poetry_list: if lazy_pinyin(self.token) == lazy_pinyin(poetry[0]): print(poetry) self.token = poetry[-1] print(self.token) return True else: return False def main(self): for i in range(1, 1000): url = self.url.format(i) # 获取页面 html = self.get_html(url) # 解析页面 self.parse_html(html) # 循环检查诗句词的诗句 while True: if self.check_poetry(): continue else: break if __name__ == "__main__": flt = FlyFlowerToken() flt.main()
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- python网络爬虫——基本概念及代码实现1
- 抓取国家统计局区划、城乡划分代码的简易python爬虫实现
- Python实现爬取知乎神回复简单爬虫代码分享
- python爬虫学习(下)——爬虫代码实现
- 豆瓣机器人 自动加入/退出小组、自动在小组发帖/删帖、自动回复 Python实现代码 豆瓣爬虫
- Python天气预报采集器实现代码(网页爬虫)
- Python采集案例:Python实现爬取知乎神回复简单爬虫代码
- Python 爬虫实例(10)—— 四行代码实现刷 博客园 阅读数量
- Python天气预报采集器实现代码(网页爬虫)
- python3简单爬虫实现代码
- Python实现的爬虫功能代码
- Python 实现网络爬虫 抓取静态网页【代码】
- 5行python代码实现简单的网络爬虫
- Python爬虫实现验证码登录代码实例
- Python爬虫简单的添加代理进行访问的实现代码
- Python爬虫实现爬取京东手机页面的图片(实例代码)
- Python实现爬取知乎神回复简单爬虫代码分享
- Python多线程、异步+多进程爬虫实现代码
- Python天气预报采集器实现代码(网页爬虫)
- Python多线程、异步+多进程爬虫实现代码