Python によってクロールされたデータはどこに保存されますか? Python クローラーはデータを保存します

皆さんこんにちは。編集者は次の質問に答えます。Python はクロールされたデータをどのフォルダーに保存しますか? Python はクロールされたデータをどのファイルに保存しますか? それでは見てみましょう!

クローラー リクエストによって解析されたデータは、さらなる処理を実行する前に保存する必要があります。一般に、データを保存する方法は次のとおりです。

  • ファイル: txt、csv、excel、json など、少量のデータが保存されます。

  • リレーショナル データベース: mysql、oracle など、大量のデータを保存したい場合、Python に何をインストールする必要がありますか?

  • 非リレーショナル データベース: Mongodb、Redis などは、データをキーと値のペアの形式で保存し、大量のデータを保存します。

  • バイナリ ファイル: クロールされた画像、ビデオ、オーディオ、その他の形式のデータを保存します。

まず、Douban Reading から「The Ordinary World」の 3 ページの短いレビュー情報をクロールし、ファイルに保存します。

https://book.douban.com/subject/1200840/comments/

具体的なコードは次のとおりです (例外は無視します)。

import requests
from bs4 import BeautifulSoup

urls=['https://book.douban.com/subject/1200840/comments/?start={}&limit=20&status=P&sort=new_score'.format(str(i)) for i in range(0, 60, 20)] #通过观察的url翻页的规律,使用for循环得到3个链接,保存到urls列表中
print(urls)
dic_h = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
comments_list = [] #初始化用于保存短评的列表

for url in urls: #使用for循环分别获取每个页面的数据,保存到comments_list列表
    r = requests.get(url=url,headers = dic_h).text

    soup = BeautifulSoup(r, 'lxml')
    ul = soup.find('div',id="comments")
    lis= ul.find_all('p')

    list2 =[]
    for li in lis:
        list2.append(li.find('span').string)
    # print(list2)
    comments_list.extend(list2)
 print(comments_list)

コメント データに移動し、リストに保存します。
ここに画像の説明を挿入します

ファイルに書き込むには open() メソッドを使用します

データをtxtに保存する

上記のクロールされたリスト データを txt ファイルに保存します。

with open('comments.txt', 'w', encoding='utf-8') as f: #使用with open()新建对象f
    # 将列表中的数据循环写入到文本文件中
    for i in comments_list:
        f.write(i+"\n") #写入数据

ここに画像の説明を挿入します
データをCSVに保存する

CSV (Comma-Separated Values、カンマ区切り値、または文字区切り値) は、純粋なファイル形式でデータを記録するストレージ形式です。csv ファイルを保存するには、Python の組み込みモジュール csv を使用する必要があります。

リストまたはタプル データを書き込む: ライター オブジェクトを作成し、writerow() を使用して 1 行のデータを書き込み、writerows() メソッドを使用して複数行のデータを書き込みます。

Writer オブジェクトを使用してリスト データを書き込みます。サンプル コードは次のとおりです。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import csv

headers = ['No','name','age']
values = [
    ['01','zhangsan',18],
    ['02','lisi',19],
    ['03','wangwu',20]
]
with open('test1.csv','w',newline='') as fp:
    # 获取对象
    writer = csv.writer(fp)
    # 写入数据
    writer.writerow(headers) #写入表头
    writer.writerows(values) # 写入数据

辞書データの書き込み: DictWriter オブジェクトを作成し、writerow() を使用して 1 行のデータを書き込み、writerows() メソッドを使用して複数行のデータを書き込みます。

DictWriter オブジェクトを使用して辞書データを書き込みます。サンプル コードは次のとおりです。

import csv

headers = ['No','name','age']
values = [
    {"No":'01',"name":'zhangsan',"age":18},
    {"No":'02',"name":'lisi',"age":19},
    {"No":'03',"name":'wangwu',"age":20}]
with open('test.csv','w',newline='') as fp:
    dic_writer = csv.DictWriter(fp,headers)
    dic_writer.writeheader()# 写入表头
    dic_writer.writerows(values) #写入数据

上記でクロールしたデータを csv ファイルに保存します。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import requests
import csv
from bs4 import BeautifulSoup
urls=['https://book.douban.com/subject/1200840/comments/?start={}&limit=20&status=P&sort=new_score'.format(str(i)) for i in range(0, 60, 20)] #通过观察的url翻页的规律,使用for循环得到5个链接,保存到urls列表中
print(urls)
dic_h = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
comments_list = [] #初始化用于保存短评的列表

for url in urls: #使用for循环分别获取每个页面的数据,保存到comments_list列表
    r = requests.get(url=url,headers = dic_h).text

    soup = BeautifulSoup(r, 'lxml')
    ul = soup.find('div',id="comments")
    lis= ul.find_all('p')

    list2 =[]
    for li in lis:
        list2.append(li.find('span').string)
    # print(list2)
    comments_list.extend(list2)

new_list = [[x] for x in comments_list] #列表生成器,将列表项转为子列表

with open("com11.csv", mode="w", newline="", encoding="utf-8") as f:
    csv_file = csv.writer(f) # 创建CSV文件写入对象
    for i in new_list:
        csv_file.writerow(i)

ここに画像の説明を挿入します
パンダを使用してデータを保存する

Pandas は複数のファイル形式の読み書きに対応しており、CSV や Excel のデータ操作が最もよく利用されており、直接読み込むデータはデータフレーム形式であるため、クローラやデータ分析で広く利用されています。

一般に、クロールされたデータは DataFrame オブジェクトとして保存されます (DataFrame は、各行がインスタンスを表し、各列が変数を表す 2 次元配列に似たテーブルまたは構造です)。
パンダはデータをExcel、CSVに保存します

Excel と CSV をパンダに保存するのは非常に簡単で、わずか 2 行のコードで実行できます。

df = pd.DataFrame(comments_list) #把comments_list列表转换为pandas DataFrame
df.to_excel('comments.xlsx') #保存到excel表格
# df.to_csv('comments.csv')#保存在csv文件

ここに画像の説明を挿入します
最後に、非常に優れた学習チュートリアルを皆さんにお勧めします。Python の学習に役立つことを願っています。

推奨される Python の基本的な入門チュートリアル: その他の Python ビデオ チュートリアル - ステーション B: Python 学習者に従う

【Pythonチュートリアル】インターネット上で一番わかりやすいPythonのシステム学習チュートリアル1,000話(最新4号にQ&Aがあり、役立つ情報が満載)

推奨される Python クローラー ケース チュートリアル: その他の Python ビデオ チュートリアル - ステーション B をフォロー: Python 学習者

2021 Python の最新かつ最も完全な 100 クローラーの完全なケース チュートリアル、データ分析、データ視覚化。忘れずにブックマークしてください。

おすすめ

転載: blog.csdn.net/chatgpt001/article/details/132925706