如何把python 爬虫爬下来的txt 文件保存在excel 中?
时间: 2024-03-20 17:41:43 浏览: 17
可以使用Python中的pandas库将爬虫爬下来的txt文件保存在Excel中。
以下是实现的步骤:
1. 读取txt文件并将其转换为pandas DataFrame对象。
```python
import pandas as pd
# 读取txt文件
with open('data.txt', 'r') as file:
data = file.readlines()
# 将数据转换为DataFrame对象
df = pd.DataFrame(data, columns=['content'])
```
2. 将DataFrame对象保存为Excel文件。
```python
# 保存为Excel文件
df.to_excel('data.xlsx', index=False)
```
其中,`to_excel`方法中的`index=False`表示不保存行索引。如果需要保存行索引,可以将其设置为`True`。
完整代码如下:
```python
import pandas as pd
# 读取txt文件
with open('data.txt', 'r') as file:
data = file.readlines()
# 将数据转换为DataFrame对象
df = pd.DataFrame(data, columns=['content'])
# 保存为Excel文件
df.to_excel('data.xlsx', index=False)
```
相关问题
python爬虫新浪微博并将其保存到excel文件中
好的,我可以为您提供相关的代码。请先确认您已经安装好了以下库:requests、beautifulsoup4、openpyxl。
接下来是代码实现:
```python
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
# 登录微博并获取Cookie
def get_cookie(username, password):
session = requests.session()
login_url = 'https://passport.weibo.cn/signin/login'
post_url = 'https://passport.weibo.cn/sso/login'
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'})
login_page = session.get(login_url)
soup = BeautifulSoup(login_page.text, 'html.parser')
vk = soup.find('input', {'name': 'vk'})['value']
data = {
'username': username,
'password': password,
'savestate': '1',
'r': '',
'ec': '0',
'pagerefer': '',
'entry': 'mweibo',
'wentry': '',
'loginfrom': '',
'client_id': '',
'code': '',
'qq': '',
'mainpageflag': '1',
'hff': '',
'hfp': '',
'vt': '',
'm': '',
'mainpagewei': '',
'authurl': '',
'u': '',
'vt3': '',
'prelt': '',
'returntype': '',
'domain': '',
'alt': '',
'psp': '',
'sr': '',
's': '',
'vm': '',
'nonce': '',
'su': '',
'service': '',
'servertime': '',
'noncestr': '',
'rsakv': '',
'sp': '',
'sr': '1920*1080',
'encoding': 'UTF-8',
'prelt': '194',
'url': 'https://passport.weibo.cn/signin/welcome?entry=mweibo&r=https%3A%2F%2Fm.weibo.cn%2F'
}
post_data = {
'username': username,
'password': password,
'savestate': '1',
'ec': '0',
'pagerefer': '',
'entry': 'mweibo',
'wentry': '',
'loginfrom': '',
'client_id': '',
'code': '',
'qq': '',
'mainpageflag': '1',
'hff': '',
'hfp': '',
'vt': '',
'm': '',
'mainpagewei': '',
'authurl': '',
'u': '',
'vt3': '',
'sid': '',
'display': '',
'withOfficalFlag': '0',
'response_type': 'code',
'appkey': '',
'state': '',
'redirect_uri': '',
'uid': '',
'scope': '',
'isLoginSina': '',
'from': '',
'client_id': '',
'code': '',
'refresh_token': '',
'checkToken': '',
'verifyToken': '',
'from': '',
'switchLogin': '0',
'action': 'submit',
'withOfficalFlag': '0',
'withOfficalAccount': '',
'lang': '',
'oauth2Callback': '',
'rand': '0',
'csrf_token': '',
'vk': vk,
'password_': ''
}
session.post(post_url, data=post_data)
return session.cookies.get_dict()
# 获取微博数据
def get_weibo_data(cookie, keyword):
session = requests.session()
session.cookies.update(cookie)
weibo_url = 'https://m.weibo.cn/api/container/getIndex?type=all&queryVal=' + keyword + '&featurecode=20000320&luicode=10000011&lfid=106003type%3D1&title=' + keyword
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
'Accept': 'application/json, text/plain, */*',
'Referer': weibo_url
}
response = session.get(weibo_url, headers=headers)
data = response.json()
cards = data['data']['cards']
weibo_data = []
for card in cards:
if card['card_type'] == 9:
mblog = card['mblog']
weibo_id = mblog['id']
text = mblog['text']
reposts_count = mblog['reposts_count']
comments_count = mblog['comments_count']
attitudes_count = mblog['attitudes_count']
created_at = mblog['created_at']
user = mblog['user']
screen_name = user['screen_name']
verified = user['verified']
followers_count = user['followers_count']
follow_count = user['follow_count']
weibo_data.append([weibo_id, text, reposts_count, comments_count, attitudes_count, created_at, screen_name, verified, followers_count, follow_count])
return weibo_data
# 将数据保存到Excel文件
def save_to_excel(weibo_data, keyword):
wb = Workbook()
sheet = wb.active
sheet.title = keyword
sheet.append(['微博ID', '微博内容', '转发数', '评论数', '点赞数', '发布时间', '用户昵称', '是否认证', '粉丝数', '关注数'])
for data in weibo_data:
sheet.append(data)
wb.save(keyword + '.xlsx')
if __name__ == '__main__':
username = 'your_username'
password = 'your_password'
keyword = 'your_keyword'
cookie = get_cookie(username, password)
weibo_data = get_weibo_data(cookie, keyword)
save_to_excel(weibo_data, keyword)
```
这个程序需要您输入您的微博账号和密码,以及您想要爬取的关键词。最后程序会在当前目录下生成一个以关键词命名的Excel文件,保存了爬取到的微博数据。
请注意:这个程序仅供学习和研究使用,请勿用于其他非法用途。
python爬虫微博热搜并写入excel文件保存
好的,这个问题可以分为以下几个步骤来实现:
1. 导入需要用到的库,包括 requests、BeautifulSoup、openpyxl。
2. 使用 requests 库向微博热搜页面发送 GET 请求,获取页面的 HTML 代码。
3. 使用 BeautifulSoup 库解析 HTML 代码,获取热搜榜单的信息。
4. 使用 openpyxl 库创建一个 Excel 文件,并将热搜榜单的信息写入到文件中。
下面是代码实现:
```python
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
# 1. 导入需要用到的库
# 2. 发送 GET 请求,获取页面的 HTML 代码
url = 'https://s.weibo.com/top/summary'
response = requests.get(url)
html = response.text
# 3. 解析 HTML 代码,获取热搜榜单的信息
soup = BeautifulSoup(html, 'html.parser')
table = soup.find('table', class_='ptable')
rows = table.tbody.find_all('tr')
hot_searches = []
for row in rows:
cells = row.find_all('td')
rank = cells[0].text.strip()
keyword = cells[1].text.strip()
hot_degree = cells[2].text.strip()
hot_searches.append([rank, keyword, hot_degree])
# 4. 创建一个 Excel 文件,并将热搜榜单的信息写入到文件中
wb = Workbook()
ws = wb.active
# 写入表头
ws.append(['排名', '关键词', '热度'])
# 写入热搜榜单信息
for hot_search in hot_searches:
ws.append(hot_search)
# 保存 Excel 文件
wb.save('hot_searches.xlsx')
```
以上代码会抓取微博热搜榜单的排名、关键词和热度,并将这些信息保存在一个 Excel 文件中。