当前位置:
首页 > temp > python入门教程 >
-
Python爬虫鲁迅先生《经典语录》保存到Excel表格(附源码)
前言
今天用Python 爬取鲁迅先生《经典语录》,直接开整~
代码运行效果展示
开发工具
Python版本: 3.6.4
相关模块
requests
lxml
pandas
以及Python自带的模块
思路分析
1、获取数据
通过“好句子迷”网站,获取网页。
http://www.shuoshuodaitupian.com/writer/128_1
利用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()
2、解析数据
通过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') # 保证不乱码
按照评分进行排序之后的结果,如下图。
如果想生成多条个人信息,可以利用for循环,把每个字典在添加到列表里,导出一个DataFrame
文章到这里就结束了,感谢你的观看,Python数据分析系列,下篇文章分享Python 爬取鲁迅先生《经典语录》
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
出处:https://www.cnblogs.com/tsp728/p/15147877.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数