Home > Mobile >  Python: Df takes Data from Df before
Python: Df takes Data from Df before

Time:04-06

In the web crawler you can see three different blocks, which provide three different pieces of information from Google News. As soon as you run the program, the problem is that the news from block no. 1 is also listed in block no. 2. So block no. 2 consists of news from block no. 1 and no. 2. The news from block no. 3 consists of news from no. 1 and no. 2 and no. 3. I would like that the news from the previous blocks do not appear in the other blocks. Thus, in block no. 2 there should be only the messages for the respective keyword. Can anyone help me with this?

import ssl
import smtplib
import pandas as pd
from GoogleNews import GoogleNews
ssl._create_default_https_context = ssl._create_unverified_context
googlenews = GoogleNews()
googlenews.set_encode('utf_8')

#Block No. 1
googlenews.get_news("New York")
keys = googlenews.results()[0].keys()
Tabelle_neu = []
for row in googlenews.results():
    Tabelle_neu.append({'City': 'New York', 'Title': row['title'], 'Date': row['date'], 'Link': row['link'], 'Source': row['site']})
    df = pd.DataFrame(Tabelle_neu)
df["Link"] = df.apply(lambda row: "<a href='{}' target='_blank'>{}</a>".format(row.Link, row.Link.split("/")[2]), axis=1)

I tried to change the individual variable names in the blocks, but then it didn't work properly either.

CodePudding user response:

As get_news() doesn't accept a list, a straight forward approach would be to iterate over all your locations using a forloop. Then, save all the separate DFs in a list and finally concat them.

Make sure to use clear() to clear your previous search.

import ssl
import pandas as pd
from GoogleNews import GoogleNews
ssl._create_default_https_context = ssl._create_unverified_context
googlenews = GoogleNews()
googlenews.set_encode('utf_8')
googlenews.set_lang('de')
googlenews.set_period('7h')

orte = ['New York', 'Los Angeles', 'London', 'Munich', 'Amsterdam', 'Madrid']
nachrichten = []

for ort in orte:
    googlenews.clear()
    googlenews.get_news(ort)
    tabelle_neu = []
    for row in googlenews.results():
        tabelle_neu.append({
            'City': ort,
            'Title': row['title'],
            'Date': row['date'],
            'Link': row['link'],
            'Source': row['site'],
            })
    df = pd.DataFrame(tabelle_neu)
    df['Link'] = df.apply(lambda row: \
                            "<a href='{}' target='_blank'>{}</a>".format(row.Link,
                            row.Link.split('/')[2]), axis=1)
    nachrichten.append(df)

dfgesamt = pd.concat(nachrichten, axis='index')

Output:

0   New York    BDS-Gruppe in New York fordert »Globalisierung...   Vor 3 Stunden   <a href='news.google.com/./articles/CAIiEFzsQJ...   Mena-Watch
1   New York    New York: Russland kündigt Pressekonferenz zu ...   Vor 6 Stunden   <a href='news.google.com/./articles/CAIiEP4wx6...   shz.de
2   New York    Massaker in Butscha - USA und Großbritannien f...   Vor 2 Stunden   <a href='news.google.com/./articles/CBMidmh0dH...   Deutschlandfunk
3   New York    Musical-Premiere in Schwerin: "Pfeifen kann do...   Vor 1 Stunde    <a href='news.google.com/./articles/CAIiEB5Oak...   NDR.de
4   New York    Die News vom 4. April zu Russlands Krieg in de...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMipwFodH...   GMX News
5   New York    Sweet Home: Designtrend – Es wird poppig    Vor 4 Stunden   <a href='news.google.com/./articles/CBMiPGh0dH...   Berner Oberländer
0   Los Angeles Los Angeles Rams: Bobby Wagner hat keine Rache...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMiWmh0dH...   RAN
1   Los Angeles Ukraine-Krieg gibt Kaltem Krieg neue Relevanz ...   Vor 4 Stunden   <a href='news.google.com/./articles/CBMiU2h0dH...   RiffReporter
2   Los Angeles Greiner Bio-One gewinnt WirtschaftsOscar    Vor 2 Stunden   <a href='news.google.com/./articles/CBMibGh0dH...   Tips - Total Regional
3   Los Angeles "So viel kostet mein Wocheneinkauf!" Mann ist ...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMiiQFodH...   TAG24
4   Los Angeles Rapper DJ Khaled bekommt Stern auf Hollywoods ...   Vor 6 Stunden   <a href='news.google.com/./articles/CAIiEExhpO...   Nau.ch
5   Los Angeles Ukraine-Hilfe: Ex-Handball-Nationalspieler Mic...   Vor 1 Stunde    <a href='news.google.com/./articles/CBMihgFodH...   Sky Sport
6   Los Angeles BERICHTE: KANYE WEST SPRINGT VON COACHELLA-FES...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMiaWh0dH...   ANTENNE MÜNSTER
7   Los Angeles Verlässt Trainer Serge Aubin die Eisbären? – B...   Vor 1 Stunde    <a href='news.google.com/./articles/CAIiEINDAe...   B.Z. – Die Stimme Berlins
8   Los Angeles Du fehlst mir: Kampf gegen Krebs verloren: Sop...   Vor 2 Stunden   <a href='news.google.com/./articles/CAIiEDvShJ...   Stuttgarter Nachrichten
9   Los Angeles Leni Klum mag deutsche Küche und verrät ihr Li...   Vor 3 Stunden   <a href='news.google.com/./articles/CAIiEH6DpH...   ruhr24.de
10  Los Angeles Exklusiver Einblick in eine eindrucksvolle Bie...   Vor 2 Stunden   <a href='news.google.com/./articles/CBMicmh0dH...   Neue Westfälische
11  Los Angeles Tanzen Sie mit diesen Profis für ukrainische K...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMia2h0dH...   Berliner Morgenpost
12  Los Angeles Todesursache klar: Christy Giles' Partner bric...   Vor 2 Stunden   <a href='news.google.com/./articles/CBMiZ2h0dH...   Promiflash.de
13  Los Angeles Matthews schießt Maple Leafs mit Hattrick zu S...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMif2h0dH...   LAOLA1.at
0   London  Vegesack – London – USA Vor 4 Stunden   <a href='news.google.com/./articles/CAIiEPuZk0...   WESER-KURIER
1   London  Plädoyers erwartet: Ex-Tennisstar Boris Becker...   Vor 2 Stunden   <a href='news.google.com/./articles/CAIiEAKP-R...   RP ONLINE
2   London  Sanktionierte russische Oligarchen in London: ...   Vor 3 Stunden   <a href='news.google.com/./articles/CAIiEPWFXS...   Business Insider Deutschland
3   London  Hotel Lanesborough in London: Hier gibts After...   Vor 5 Stunden   <a href='news.google.com/./articles/CBMiWmh0dH...   20 Minuten
4   London  Corona-Studie: Hohe Viruslast, keine Symptome ...   Vor 1 Stunde    <a href='news.google.com/./articles/CAIiEPO-hm...   RP ONLINE
5   London  Boris Becker: Prozess neigt sich dem Ende entg...   Vor 22 Minuten  <a href='news.google.com/./articles/CAIiECtSJW...   RND
6   London  Endspiel für Boris Becker vor Gericht | Nachri...   Vor 1 Stunde    <a href='news.google.com/./articles/CBMiYGh0dH...   Lippische Landes-Zeitung
7   London  Spekulanten greifen nach Arztpraxen Vor 4 Stunden   <a href='news.google.com/./articles/CAIiEE-MzP...   NDR.de
8   London  Glamhive kündigt den ersten internationalen St...   Vor 3 Stunden   <a href='news.google.com/./articles/CBMiwgFodH...   boerse.de
9   London  Rohstoff-Rally : Ukraine-Krieg lässt Nickelpre...   Vor 1 Stunde    <a href='news.google.com/./articles/CAIiEDiEdc...   finanzen.ch
10  London  Nouvelair stockt in Düsseldorf auf und verbind...   Vor 5 Stunden   <a href='news.google.com/./articles/CAIiENzlr1...   aeroTELEGRAPH
11  London  „Hart aber fair“: Heil zofft sich mit Brüderle  Vor 6 Stunden   <a href='news.google.com/./articles/CBMidmh0dH...   BILD
12  London  Hit-strotzende Zeitreise in der „TriBühne“  Vor 4 Stunden   <a href='news.google.com/./articles/CBMibGh0dH...   Hamburger Abendblatt
13  London  Snapchat: Die Welt scannen und optimieren – da...   Vor 4 Stunden   <a href='news.google.com/./articles/CAIiEJrRRR...   WELT
14  London  Sweet Home: Designtrend – Es wird poppig    Vor 4 Stunden   <a href='news.google.com/./articles/CBMiMmh0dH...   Der Bund
15  London  Neue Omikron-Symptome: Großbritannien ergänzt ...   Vor 3 Stunden   <a href='news.google.com/./articles/CAIiEHLpGJ...   kreiszeitung.de
16  London  Genderflexibel  Vor 1 Stunde    <a href='news.google.com/./articles/CBMiWGh0dH...   FAZ - Frankfurter Allgemeine Zeitung
17  London  Schweizer Rückversicher : Swiss Re-Aktie: Über...   Vor 1 Stunde    <a href='news.google.com/./articles/CAIiEExaOs...   finanzen.ch
  • Related