Python 财经新闻分析-取消绑定以从标记中提取数据并将其转换为文本
我正在从网站中提取财务数据,并希望稍后将其存储在数据框中进行情绪分析 问题:Python 财经新闻分析-取消绑定以从标记中提取数据并将其转换为文本,python,beautifulsoup,xmldatasource,Python,Beautifulsoup,Xmldatasource,我正在从网站中提取财务数据,并希望稍后将其存储在数据框中进行情绪分析 问题: 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, fea
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()
将其转换为文本,从而生成带有标记的数据。(为了 单个项目,它可以工作)
/n
。我怎么能
简单地移除它“a”class=“plcReadMore”
的URL
我喜欢提取问题-href
存在于标签中,例如。
Läs hela>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代码:
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()
-
斯德哥尔摩(Nyhetsbyrån Direkt)博斯塔德斯普里塞纳一世斯维里奇sjönk 2,0年4月一日。Säsongsresrestat sjönk priserna 1,9 procent.Det visar Valueguards HOX-index.Bostadspriserna har sjunkit 1,2 procent根据den senaste tremån
飞艇
Idag 06:00
-
博斯塔德萨特维克拉伦·博纳瓦斯·斯泰雷尔塞奥德夫·兰德·米凯尔·诺曼·哈尔登15号,约5000亿美元。Aktierna köptes至kursen 38,92克朗/阿克提,建筑面积195 000克朗。阿法伦·乔德斯·斯德哥尔摩。金融调查局副局长
鳍线
2020-05-15
-
北欧货币基金组织(Nordea mäklade påfredagen en post på1,06 miljoner B-aktier i Bostadsutveckelaren Bonava inbördes)至库尔森38,16克朗/阿克提。Affärenär på40,4 miljoner kronor och motsvarar 1,0 procent av aktierna i bolaget。
鳍线
2020-05-15
-
Bostadsutvecklaren Bonavas vd Joachim Hallengren harökat innehavet med 10000 aktier。截至366 594克朗,每阿克提66克朗。同步登记簿中的详细财务报表。
鳍线
2020-05-15
-
(Omsändning:skickades första gången påtorsdagskvällen)斯德哥尔摩(Nyhetsbyrån Direkt)Joachim Hallengren,somär vd för bostadsutvecklaren Bonava,har påtorsdagen köpt 10000 aktier i bolaget för en köpess om närma 0.4 miljoner Kronr.详细信息
飞艇
2020-05-15
-
斯德哥尔摩(Nyhetsbyrån Direkt)Joachim Hallengren,somär vd för Bostadsutveckelaren Bonava,har påtorsdagen köpt 10000 aktier i bolaget för en köpeskilling om nämare 0,4 miljoner kronor.详细信息请参阅综合报告中的财务调查。克佩特
飞艇
2020-05-14
-
贝尔斯:
141 aktier påbörsen har fåett se sina Genomsnitliga riktkurser sänkas在de senaste sex månaderna的领导下。我将在50年前完成这项工作。
卡尔兰斯
2020-05-13
稍微修改了脚本以获得标题、说明和href。希望你的问题能得到在线解答
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://www.avanza.se/placera/rutor/alla-foretagsartiklar.7.19888.a.html"
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
base_url='https://www.avanza.se'
items = soup.find_all('div',{'class':'item'})
list_items = []
for item in items:
list_item = {}
# === this gets title, description and href ===
title=item.a.text
description=item.find('p',{'class':'shortIntro'}).text.strip() # strip() removes whitespace around description
href=item.find('a',{'class':'plcReadMore'}).get('href')
#===============================================
list_item['title'] = title
list_item['description'] = description
list_item['URL'] = base_url + href
list_items.append(list_item)
df = pd.DataFrame(list_items, columns=['title', 'description', 'URL'])
谢谢,它起作用了:)出于好奇的问题-为什么我们使用r-conetnt和lxml?“r”只是我为请求-响应变量选择的名称。您可以将其重命名为代码中的“resp”
lxml
是一种更高效/更快的内容解析器。更常见的是“html.parser”。除非您使用大型数据集,否则您不会真正注意到它们之间的差异,直到那时,选择哪一个并不重要。有关解析器的更多信息,。非常感谢。这真的很有帮助。