有一分热,发一分光,爬取鲁迅先生《经典语录》
程序员文章站
2024-01-23 22:09:04
...
前言
《后浪》看的人热血沸腾。B站版本视频的底部,评论最多的一段话之一便是鲁迅先生这句。
“愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃者流的话。能做事的做事,能发声的发声。有一分热,发一分光,就令萤火一般,也可以在黑暗里发一点光,不必等候炬火。”
本文通过“好句子迷”网站,获取了鲁迅先生的大部分经典语录,并保存到了本地excel文件,这些发人深省的句子真的该好好读一读。
用到的模块:
import requests
from lxml import etree
import pandas as pd
import time
获取数据:
通过“好句子迷”网站,获取网页。
利用request模块,通过URL链接,获取html网页,下一步进行网页分析。
其中,URL只有最后一部分发生改变(1-10 :代表第1页--第10页的全部内容)
# 1、获取数据
headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " \
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36",
}
for i in range(0, 9):
url = "http://www.shuoshuodaitupian.com/writer/128_" + str(i + 1) # 1-10页
result = requests.get(url, headers=headers).content.decode()
解析数据:
通过Xpath语句解析,分别获取句子的内容、来源和评分等,如图所示。
把获取的每一组数据,放在一个字典里,再把字典追加到一个列表中。
代码部分:
# 2、解析数据
html = etree.HTML(result)
div_list = html.xpath('//div[@class="item statistic_item"]')
div_list = div_list[1:-1]
for div in div_list:
# 遍历每一条信息
item = {}
# ./ 注意从当前节点,向下获取
item['content'] = div.xpath('./a/text()')[0]
item['source'] = div.xpath('./div[@class="author_zuopin"]/text()')[0]
item['score'] = div.xpath('.//a[@class="infobox zan like "]/span/text()')[0]
item_list.append(item)
print("正在爬取第{}页".format(i + 1))
time.sleep(0.1)
保存数据:
把上述获取的数据放到一个列表中后,可通过pandas模块把数据类型转变为DataFrame,进而可以轻松地保存到excel文件中。
为防止中文乱码,注意编码格式。
# 3、保存数据
df = pd.DataFrame(item_list) # 把数据存成csv文件
df.to_csv('鲁迅经典语录.csv', encoding='utf_8_sig') # 保证不乱码
按照评分进行排序之后的结果,如下图。
如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!
上一篇: 简述Shiro验证过程
下一篇: java面试题大纲