爬虫csv文件写入和读取
文章目录
总结:
介绍了csv 模块
前言大纲:
通过一个爬虫小案例:爬取文章标题讲述怎么写入csv文件
1、目的:爬取标题
虎扑 获取主页标题 url = 'https://bbs.hupu.com/'
通过审查元素F12 我们可以知道标题都在
span标签下的class="t-title"下
2、代码如下
-
# -*- coding: utf-8 -*-
-
"""
-
@File : _thread多线程.py
-
@author: FxDr
-
@Time : 2022/10/16 19:43
-
"""
-
-
from bs4 import BeautifulSoup
-
import requests
-
-
-
def hupu():
-
li = []
-
# 虎扑 获取主页标题
-
url = 'https://bbs.hupu.com/'
-
headers = {
-
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42'
-
}
-
req = requests.get(url, headers=headers).content.decode('utf-8')
-
soup = BeautifulSoup(req, 'lxml')
-
# print(soup.prettify()) 美化输出
-
p = soup.find_all('span', class_='t-title')
-
-
for each in p:
-
# print(each.text)
-
li1 = [each.text]
-
li.append(li1)
-
return li
-
-
-
print(hupu())
输出:
3、写入txt文本
-
# -*- coding: utf-8 -*-
-
"""
-
@File : threading多线程.py
-
@author: FxDr
-
@Time : 2022/10/16 20:01
-
"""
-
-
from bs4 import BeautifulSoup
-
import requests
-
-
-
def hupuDown():
-
# 虎扑 获取主页标题
-
url = 'https://bbs.hupu.com/history/'
-
headers = {
-
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42'
-
}
-
req = requests.get(url, headers=headers).content.decode('utf-8')
-
soup = BeautifulSoup(req, 'lxml')
-
# print(soup.prettify())
-
p = soup.find_all('a', class_='p-title')
-
# print(p)
-
for each in p:
-
print(each.text)
-
with open('虎扑.txt', 'a ') as f:
-
f.writelines(each.text)
-
f.writelines('\n')
如下:
4、csv模块
import csv
1、csv写入
1)csv 写入列表
一个小例子:
- writerow():单行写入,将一个列表全部写入csv的同一行
- writerows():多行写入,将一个二维列表的每一个列表写为一行
-
# 将数据写入csv文件 可以写入列表,再用writerow()方法把一个列表写入
-
import csv
-
-
output = [12,'重生之鸡哥在世', '1000']
-
with open('fxx_books.csv', 'a ', encoding='utf-8') as f:
-
w = csv.writer(f)
-
w.writerow(output)
输出如下:
2)写入字典
-
# -*- coding: utf-8 -*-
-
"""
-
@File : 02.py
-
@author: FxDr
-
@Time : 2022/11/01 20:05
-
"""
-
import csv
-
# 写入字典
-
# 数据
-
person = [
-
{'name': 'Eric', 'age': 18, 'score': 99},
-
{'name': 'LiHua', 'age': 18, 'score': 66},
-
{'name': 'niCai', 'age': 17, 'score': 100},
-
]
-
# 表头
-
header = ['name', 'age', 'score']
-
-
with open('fxx_students.csv', 'w', encoding='utf-8', newline='') as f:
-
# 1.创建对象
-
dictWriter = csv.DictWriter(f, header)
-
# 2.写入表头
-
dictWriter.writeheader()
-
# 3.写入数据 writerows
-
dictWriter.writerows(person)
2、csv读取
-
import csv
-
# 读取csv文件
-
with open('fxx_books.csv', 'r', encoding='utf-8') as f:
-
csv_reader = csv.reader(f)
-
for row in csv_reader:
-
print(row) # csv_reader把每一行转化为一个列表
-
# print(row[0]) # 列表的第一项
输出:
5、将标题写入csv文件:
代码如下:
-
# -*- coding: utf-8 -*-
-
"""
-
@File : Down.py
-
@author: FxDr
-
@Time : 2022/11/01 19:42
-
"""
-
from spider.hupu import Down
-
-
# 将数据写入csv文件 可以写入列表,再用writerow()方法把一个列表写入
-
import csv
-
-
output = Down.hupu()
-
print(type(output))
-
with open('fxx_hupu.csv', 'a ', encoding='utf-8') as f:
-
w = csv.writer(f)
-
'''
-
for each in output:
-
w.writerow(each)
-
'''
-
w.writerows(output)
-
# writerow():单行写入,将一个列表全部写入csv的同一行
-
# writerows():多行写入,将一个二维列表的每一个列表写为一行
总结
本文以一个爬虫小案例讲述怎么把爬取到的文本内容写入本地
有以下几种常用的方式:
1、写入txt文本
2、写入csv文件
3、写入sql(将在下篇博客讲述)
csv 模块
通过这个案例,顺便介绍了以下csv模块
常用的几种函数方法有:
写入:
- writerow():单行写入,将一个列表全部写入csv的同一行
- writerows():多行写入,将一个二维列表的每一个列表写为一行
读取:
reader()
比如:
with open('fxx_books.csv', 'r', encoding='utf-8') as f:
csv_reader = csv.reader(f) # 列表类型 可以通过 for each in csv_reader:遍历
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhabkji
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13