0

私は Web サイトから財務データを抽出しており、後でセンチメント分析のためにデータ フレームに保存したいと考えています。

問題:

  1. for ループを使用してすべての項目を処理する
    と、それをテキストに変換できず、タグ付きのデータになります。(単一のアイテムの場合、それは機能します)
  2. 説明タグは/n最初と最後にあります。どうすれば簡単に削除できますか?
  3. URL を抽出する必要があります。タグ"a" class="plcReadMore"には、抽出したい URL があります。問題-hrefタグ内に存在する例: < a class="plcReadMore" href="/placera/telegram/2020/05/19/valueguard-bostadspiser-20-i-april-sasongsrensat-19.html">Läs hela >

HTML データを抽出し、さらに分析するためにデータ フレームに入れる Python コード:

import requests
from bs4 import BeautifulSoup
import pandas as pd

url = "https://www.avanza.se/placera/rutor/alla-foretagsartiklar.7.19888.a.html"
resp = requests.get(url)
soup = BeautifulSoup(resp.content, features="xml")
print(soup.prettify())
items = soup.findAll('div')
print(items)
# Checked single items and converted into text
print(items[0])
print(items[0].a.text)
print(items[0].p.text)
print(items[0].find("a", class_="plcReadMore"))
# Issue starts here when we process multiple items
list_items = []
for item in items:
    list_item = {}
    title_temp =
    list_item['title'] = item.a
    list_item['description'] = item.p
    # list_item['URL']= item.find("a", {"class": "plcReadMore"})
    list_item['URL'] = getattr(item.find("p", {"class": "plcReadMore"}), 'text', None)
    list_items.append(list_item)
print(list_items[0])
df = pd.DataFrame(list_items, columns=['title', 'description', 'URL'])
df.head() 

ソース XML コード:

    <!-- Unable to get href from tag a under class "plcReadMore"-->
    <?xml version="1.0" encoding="utf-8"?>
    <ul class="cleanList plcTeaserList XSText">
     <li class="active">
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          BOSTADSPRISER -2,0% I APRIL, SÄSONGSRENSAT -1,9%
         </a>
         <p class="shortIntro">
          STOCKHOLM (Nyhetsbyrån Direkt) Bostadspriserna i Sverige sjönk 2,0 procent i april jämfört med föregående månad. Säsongsrensat sjönk priserna 1,9 procent.Det visar Valueguards HOX-index.Bostadspriserna har sjunkit 1,2 procent under den senaste tremån
         </p>
        </div>
        <a class="plcReadMore" href="/placera/telegram/2020/05/19/valueguard-bostadspriser-20-i-april-sasongsrensat-19.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Direkt
        </div>
       </div>
       <div class="cell dateCol XXSText">
        Idag 06:00
       </div>
      </div>
     </li>
     <li>
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          Bonavas styrelseordförande köper 5 000 aktier
         </a>
         <p class="shortIntro">
          Bostadsutvecklaren Bonavas styrelseordförande Mikael Norman har den 15 maj köpt 5 000B-aktier i bolaget. Aktierna köptes till kursen 38,92 kronor per aktie, en affär på 195 000 kronor. Affären gjordes på Nasdaq Stockholm. Det framgår av Finansinspekt
         </p>
        </div>
        <!-- Here comes the issue -->
        <a class="plcReadMore" href="/placera/telegram/2020/05/15/bonava-bonavas-styrelseordforande-koper-5-000-aktier.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Finwire
        </div>
       </div>
       <div class="cell dateCol XXSText">
        2020-05-15
       </div>
      </div>
     </li>
     <li>
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          Nordea mäklar post på 1,0 procent av aktierna i Bonava
         </a>
         <p class="shortIntro">
          Nordea mäklade på fredagen en post på 1,06 miljoner B-aktier i bostadsutvecklaren Bonava inbördes till kursen 38,16 kronor per aktie. Affären är på 40,4 miljoner kronor och motsvarar 1,0 procent av aktierna i bolaget.
         </p>
        </div>
        <a class="plcReadMore" href="/placera/telegram/2020/05/15/bonava-nordea-maklar-post-pa-10-procent-av-aktierna-i-bonava.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Finwire
        </div>
       </div>
       <div class="cell dateCol XXSText">
        2020-05-15
       </div>
      </div>
     </li>
     <li>
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          Bonavas vd har ökat med 10 000 aktier
         </a>
         <p class="shortIntro">
          Bostadsutvecklaren Bonavas vd Joachim Hallengren har ökat innehavet med 10 000 aktier. Den totala köpesumman uppgår till 366 594 kronor med ett genomsnittspris på 36,66 kronor per aktie. Det framgår av Finansinspektionens insynsregister.
         </p>
        </div>
        <a class="plcReadMore" href="/placera/telegram/2020/05/15/bonava-bonavas-vd-har-okat-med-10-000-aktier.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Finwire
        </div>
       </div>
       <div class="cell dateCol XXSText">
        2020-05-15
       </div>
      </div>
     </li>
     <li>
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          VD JOACHIM HALLENGREN KÖPT AKTIER FÖR 0,4 MLN KR (OMS)
         </a>
         <p class="shortIntro">
          (Omsändning: skickades första gången på torsdagskvällen)STOCKHOLM (Nyhetsbyrån Direkt) Joachim Hallengren, som är vd för bostadsutvecklaren Bonava, har på torsdagen köpt 10.000 aktier i bolaget för en köpeskilling om närmare 0,4 miljoner kronor.Det f
         </p>
        </div>
        <a class="plcReadMore" href="/placera/telegram/2020/05/15/bonava-vd-joachim-hallengren-kopt-aktier-for-04-mln-kr-oms.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Direkt
        </div>
       </div>
       <div class="cell dateCol XXSText">
        2020-05-15
       </div>
      </div>
     </li>
     <li>
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          VD JOACHIM HALLENGREN KÖPT AKTIER FÖR 0,4 MLN KR
         </a>
         <p class="shortIntro">
          STOCKHOLM (Nyhetsbyrån Direkt) Joachim Hallengren, som är vd för bostadsutvecklaren Bonava, har på torsdagen köpt 10.000 aktier i bolaget för en köpeskilling om närmare 0,4 miljoner kronor.Det framgår av Finansinspektionens insynsrapportering. Köpet
         </p>
        </div>
        <a class="plcReadMore" href="/placera/telegram/2020/05/14/bonava-vd-joachim-hallengren-kopt-aktier-for-04-mln-kr.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Direkt
        </div>
       </div>
       <div class="cell dateCol XXSText">
        2020-05-14
       </div>
      </div>
     </li>
     <li>
      <div class="item">
       <div class="cell">
        <div class="expand">
         <a class="title" href="#">
          Aktierna som fått sänkta riktkurser
         </a>
         <p class="shortIntro">
          <span class="bold plcVignette upperCase">
           Börs:
          </span>
          141 aktier på börsen har fått se sina genomsnittliga riktkurser sänkas under de senaste sex månaderna. I fyra av aktierna har riktkurserna sänkts med över 50 procent.
         </p>
        </div>
        <a class="plcReadMore" href="/placera/redaktionellt/2020/05/13/aktierna-som-fatt-sankta-riktkurser.html">
         Läs hela
        </a>
       </div>
       <div class="cell writerCol XXSText">
        <div class="writer">
         Karl Lans
        </div>
       </div>
       <div class="cell dateCol XXSText">
        2020-05-13
       </div>
      </div>
     </li>
    </ul>
4

1 に答える 1