PythonでWebからスクレイピングされたデータからcsvファイルを書き込む方法

user10468005

Webページからデータをスクレイピングしようとしていますが、スクレイピングも可能です。以下のスクリプトを使用してすべてのdivクラスデータを取得した後、のようにCSVファイルにデータを書き込む方法がわかりません。

名列の名データ姓列の名データ。

from urllib.request import urlopen
from bs4 import BeautifulSoup

html = 'http://rerait.telangana.gov.in/PrintPreview/PrintPreview/UHJvamVjdElEPTQmRGl2aXNpb249MSZVc2VySUQ9MjAyODcmUm9sZUlEPTEmQXBwSUQ9NSZBY3Rpb249U0VBUkNIJkNoYXJhY3RlckQ9MjImRXh0QXBwSUQ9'

page = urlopen(html)

data = BeautifulSoup(page, 'html.parser')

name_box = data.findAll('div', attrs={'class': 'col-md-3 col-sm-3'}) #edited companyName_99a4824b -> companyName__99a4824b

for i in range(len(name_box)):
    data = name_box[i].text.strip()

データ:

Information Type
Individual

First Name
KACHAM
Middle Name

Last Name
RAJESHWAR
Father Full Name
RAMAIAH
Do you have any Past Experience ?
No
Do you have any registration in other State than registred State?
No
House Number
8-2-293/82/A/446/1
Building Name
SAI KRUPA
Street  Name
ROAD NO 20
Locality
JUBILEE HILLS
Landmark
JUBILEE HILLS
State
Telangana
Division
Division 1
District
Hyderabad
Mandal
Shaikpet
Village/City/Town

Pin Code
500033
Office Number
04040151614
Fax Number

Website URL

Authority Name

Plan Approval Number
1/18B/06558/2018
Project Name
SKV S ANANDA VILAS
Project Status
New Project
Proposed Date of Completion
17/04/2024
Litigations related to the project ?
No
Project Type
Residential
Are there any Promoter(Land Owner/ Investor) (as defined by Telangana RERA Order) in the project ?
Yes
Sy.No/TS No.
00
Plot No./House No.
10-2-327
Total Area(In sqmts)
526.74
Area affected in Road widening/FTL of Tanks/Nala Widening(In sqmts)
58.51
Net Area(In sqmts)
1
Total Building Units (as per approved plan)
1
Proposed Building Units(as per agreement)
1


Boundaries East
PLOT NO 213
Boundaries West
PLOT NO 215
Boundaries North
PLOT NO 199
Boundaries South
ROAD NO 8
Approved Built up Area (In Sqmts)
1313.55
Mortgage Area  (In Sqmts)
144.28
State
Telangana
District
Hyderabad
Mandal
Maredpally
Village/City/Town

Street
ROAD NO 8
Locality
SECUNDERABAD COURT
Pin Code
500026

上記は、上記のコードを実行した後に取得されるデータです。

編集

for i in range(len(name_box)):
    data = name_box[i].text.strip()
    print (data)
    fname = 'out.csv'
    with open(fname) as f:
        next(f)
        for line in f:
            head = []
            value = []
            for row in line:
                head.append(row)
            print (row)

期待される

Information Type | First  | Middle Name | Last Name | ......
Individual       | KACHAM |             | RAJESHWAR | .....

私は200のURLを持っていますが、すべてのURLデータが同じではないため、これらの一部が欠落しています。データが利用できない場合は、そのように書きたいので、何も空白で書きません。

提案してください。前もって感謝します

ewwink

csvに書き込むには、headとbodyの値を知る必要があります。この場合、headの値はhtml要素に含まれている必要があります。 <label

from urllib2 import urlopen
from bs4 import BeautifulSoup

html = 'http://rerait.telangana.gov.in/PrintPreview/PrintPreview/UHJvamVjdElEPTQmRGl2aXNpb249MSZVc2VySUQ9MjAyODcmUm9sZUlEPTEmQXBwSUQ9NSZBY3Rpb249U0VBUkNIJkNoYXJhY3RlckQ9MjImRXh0QXBwSUQ9'

page = urlopen(html)

data = BeautifulSoup(page, 'html.parser')

name_box = data.findAll('div', attrs={'class': 'col-md-3 col-sm-3'}) #edited companyName_99a4824b -> companyName__99a4824b

heads = []
values = []

for i in range(len(name_box)):
    data = name_box[i].text.strip()
    dataHTML = str(name_box[i])
    if 'PInfoType' in dataHTML:
        # <div class="col-md-3 col-sm-3" id="PInfoType">
        # empty value, maybe additional data for "Information Type"
        continue

    if 'for="2"' in dataHTML:
        # <label for="2">No</label>
        # it should be head but actually value
        values.append(data)

    elif '<label' in dataHTML:
        # <label for="PersonalInfoModel_InfoTypeValue">Information Type</label>
        # head or top row
        heads.append(data)

    else:
        # <div class="col-md-3 col-sm-3">Individual</div>
        # value for second row
        values.append(data)

csvData = ', '.join(heads) + '\n' + ', '.join(values)    
with open("results.csv", 'w') as f:
    f.write(csvData)

print "finish."

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ScrapyでスクレイピングされたデータをCSVファイルに書き込む方法は?

分類Dev

ファイルからクラスインスタンスで満たされたリストにデータを書き込む方法は?

分類Dev

スクレイピングされたデータをcsvに書き込む

分類Dev

beautifulsoupからスクレイピングされたデータをcsvファイルに入れる

分類Dev

MacでPythonWebスクレイピングデータを.csvファイルに書き込む

分類Dev

定義されたcsvファイルにテキストリストを書き込む方法は?Pythonセレンスクレイピング

分類Dev

PythonがWebからデータファイルをダウンロード-スクレイピングされたURL

分類Dev

PythonBS4を使用してスクレイピングされたデータをCSVに書き込む

分類Dev

csvファイルにデータフレームを書き込むと、文字列列から先頭のスペースが削除されます

分類Dev

purrr :: walkを使用して、オンザフライのファイル名でネストされたデータフレームから書き込みます

分類Dev

パンダスタイルを使用して作成された列内に棒グラフ形式でパンダからExcelファイルを書き込む

分類Dev

KStreamsを使用してKafkaトピックからファイルにデータを書き込む方法

分類Dev

テーブルをスクレイピングしてからcsvに書き込む

分類Dev

Pythonスクリプトを使用して、スクレイピングされたデータをテキストファイルに書き込みます

分類Dev

Linuxでサブディレクトリからcsvファイルにファイル名を書き込む

分類Dev

JSONからCSVへのデータをcsvファイルに書き込む

分類Dev

テキストまたはcsvファイルへのデータの書き込みや、テキストまたはcsvファイルからの読み取りを含む優れたプログラムは何でしょうか。

分類Dev

TCLで最初からCSVファイルを書き込む方法、行にデータがあります

分類Dev

PowerShellのコマンドラインから渡されたテキストファイルにパラメーターを書き込む方法は?

分類Dev

Googleスプレッドシートからテンプレート化されたHTMLファイルの時間入力フィールドにデータを書き込むにはどうすればよいですか

分類Dev

Pythonを使用してhtmlテーブルからデータをWebスクレイピングし、csvファイルに保存する方法。一部の部分は抽出できますが、他の部分は抽出できません

分類Dev

ファイルからスクレイピングして、スクレイピングされたコンテンツを別のファイルに書き込もうとしていますか?

分類Dev

ネストされたコレクションを含むpojoでcsvファイルを書き込む

分類Dev

Pythonの基本-APIからデータをリクエストし、ファイルに書き込む

分類Dev

Pythonのジェネレーターから.csvファイルに書き込む方法

分類Dev

スクレイピングされたデータをスラブ文字でcsvに書き込む際の問題(UnicodeEncodeError&TypeError)

分類Dev

Python-Beautifulsoup-テキストファイルに出力される最後のスクレイピングされたリンクからのデータのみ

分類Dev

複数の入力CSVファイルから単一のCSVに列形式でデータを書き込む

分類Dev

GL_MAP_PERSISTENT_BITでマッピングした後、glBufferStorageからマッピングされたバッファーのバインドを解除して、ポインターに書き込むのは安全ですか?

Related 関連記事

  1. 1

    ScrapyでスクレイピングされたデータをCSVファイルに書き込む方法は?

  2. 2

    ファイルからクラスインスタンスで満たされたリストにデータを書き込む方法は?

  3. 3

    スクレイピングされたデータをcsvに書き込む

  4. 4

    beautifulsoupからスクレイピングされたデータをcsvファイルに入れる

  5. 5

    MacでPythonWebスクレイピングデータを.csvファイルに書き込む

  6. 6

    定義されたcsvファイルにテキストリストを書き込む方法は?Pythonセレンスクレイピング

  7. 7

    PythonがWebからデータファイルをダウンロード-スクレイピングされたURL

  8. 8

    PythonBS4を使用してスクレイピングされたデータをCSVに書き込む

  9. 9

    csvファイルにデータフレームを書き込むと、文字列列から先頭のスペースが削除されます

  10. 10

    purrr :: walkを使用して、オンザフライのファイル名でネストされたデータフレームから書き込みます

  11. 11

    パンダスタイルを使用して作成された列内に棒グラフ形式でパンダからExcelファイルを書き込む

  12. 12

    KStreamsを使用してKafkaトピックからファイルにデータを書き込む方法

  13. 13

    テーブルをスクレイピングしてからcsvに書き込む

  14. 14

    Pythonスクリプトを使用して、スクレイピングされたデータをテキストファイルに書き込みます

  15. 15

    Linuxでサブディレクトリからcsvファイルにファイル名を書き込む

  16. 16

    JSONからCSVへのデータをcsvファイルに書き込む

  17. 17

    テキストまたはcsvファイルへのデータの書き込みや、テキストまたはcsvファイルからの読み取りを含む優れたプログラムは何でしょうか。

  18. 18

    TCLで最初からCSVファイルを書き込む方法、行にデータがあります

  19. 19

    PowerShellのコマンドラインから渡されたテキストファイルにパラメーターを書き込む方法は?

  20. 20

    Googleスプレッドシートからテンプレート化されたHTMLファイルの時間入力フィールドにデータを書き込むにはどうすればよいですか

  21. 21

    Pythonを使用してhtmlテーブルからデータをWebスクレイピングし、csvファイルに保存する方法。一部の部分は抽出できますが、他の部分は抽出できません

  22. 22

    ファイルからスクレイピングして、スクレイピングされたコンテンツを別のファイルに書き込もうとしていますか?

  23. 23

    ネストされたコレクションを含むpojoでcsvファイルを書き込む

  24. 24

    Pythonの基本-APIからデータをリクエストし、ファイルに書き込む

  25. 25

    Pythonのジェネレーターから.csvファイルに書き込む方法

  26. 26

    スクレイピングされたデータをスラブ文字でcsvに書き込む際の問題(UnicodeEncodeError&TypeError)

  27. 27

    Python-Beautifulsoup-テキストファイルに出力される最後のスクレイピングされたリンクからのデータのみ

  28. 28

    複数の入力CSVファイルから単一のCSVに列形式でデータを書き込む

  29. 29

    GL_MAP_PERSISTENT_BITでマッピングした後、glBufferStorageからマッピングされたバッファーのバインドを解除して、ポインターに書き込むのは安全ですか?

ホットタグ

アーカイブ