🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

714閲覧

いくつ行数があるか数えたい

zen913

総合スコア21

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/06 06:06

編集2019/11/06 08:28

自分のテキストを読み取り、<h1></hi>の行数で区切りその区間でいくつ行数があるか数えるプログラミングを作成したいです。

python

1with open('cotton.txt',encoding="utf-8_sig") as f: 2 lines = f.read().splitlines() 3 4print('\n'.join(lines)) 5print(sum ([1 for _ in open('cotton.txt',encoding="utf-8_sig")]))

結果

<h1>file:1941 55.txt</h1>
the variation of raw cotton con stituents with physical properties
microscopic structure of the cotton fiber
base-combining capacity of cotton
direct processing of whole cotton
shrinkage and cell wall structure of cotton fibers
the hydrolysis and catalytic oxidation of cellulosic materials. iii. the rates of hydrolysis of cotton mercerized with and without tension
surface characteristics of cotton fibers as indicatcd by electro phoretic studies
a comparison of five methods of measuring fineness of cotton fibers
<h1>file:1942 99.txt</h1>
cotton changes color
<h1>file:1943 91.txt</h1>
strength of cotton fiber bundles
tensile strength of cotton fiber



2201
と全体の行数を出すところまではできます。

<h1>file:1941 55.txt</h1>
9
<h1>file:1942 99.txt</h1>
1
<h1>file:1943 91.txt</h1>
2

のようにしたいです!
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/11/06 07:04

で、しつもんはなんでしょうか
zen913

2019/11/06 07:10

英語の箇所を行数に変換したいです。 ということです。 分かりづらく申し訳ございません
coco_bauer

2019/11/06 07:46

splitlines()した結果は、リストになるので、リストの長さ(項目数)が行数になります。 print('\n'.join(lines)) のところを、 print(len(lines)) にすると、行数が表示されるようになりませんか?
zen913

2019/11/06 07:57

全体の行数を表示ではなくて特定の場所で区切って行数をリセットさせたい場合はどうしたらよいでしょうか?(今回でいうと<h1>…</h1>がある行では行数はリセットされまた1から数え始めるみたいな感じです)
coco_bauer

2019/11/06 08:18

「ある場所で区切って年代ごとに」をどうすれば実現できるのか不明です。『ある場所』って、どうすれば判りますか? 『年代』って、何から判断したら良いのですか?
guest

回答1

0

ベストアンサー

with open('cotton.txt',encoding="utf-8_sig") as f: lines = [line for line in f.read().split("\n")] dic = dict() keys = [] for line in lines: if line[:4] == "<h1>" and line[-5:] == "</h1>": keys.append(line) dic[keys[-1]] = 0 else: dic[keys[-1]] += 1 for k in keys: print(k) print(dic[k])

投稿2019/11/06 08:15

fsoe

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zen913

2019/11/06 08:28

本当にありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問