需要有关使用beautifulsoup从网页中提取文本的帮助。对我来说,很难弄清楚如何编写代码,因此,如果有人可以帮助我,我将非常感激。
在https://www.smhi.se/vadret/vadret-i-sverige/meteorologens-kommentar#ws=wpt-a,proxy=wpt-a,area=3上我想将“ PrognosförNordvästraGötaland”框中的文本提取到文本文件中。我将在我的树莓派上运行它。是否有一个“简单的” beautifulsoup脚本来完成此任务?我在安装bs4时得到了一个基本脚本,如下所示:
import requests
from bs4 import BeautifulSoup
print "Opening site..."
f = requests.get('https://www.smhi.se/vadret/vadret-i-sverige/meteorologens-kommentar#ws=wpt-a,proxy=wpt-a,area=3')
soup = BeautifulSoup(f.text,'lxml')
print soup
这将打印html页面的内容。
您在页面上看到的数据是通过JavaScript动态加载的(因此BeautifulSoup在这里无法为您提供帮助)。但是您可以使用requests
模块模拟Ajax请求:
import json
import requests
data_url = 'https://www.smhi.se/wpt-a/backend_metcomments/frodo/oversikt_text'
data = requests.get(data_url).json()
# print(json.dumps(data, indent=4)) # <-- uncomment this to see all data
with open('output.txt', 'w') as f_out:
print(data['districts']['NORDVÄSTRA GÖTALAND']['header'], file=f_out)
print(data['districts']['NORDVÄSTRA GÖTALAND']['text'], file=f_out)
这将产生包含内容的文件output.txt
:
Mycket milt och en smula blåsigt
Mycket moln, sent i kväll och under inledningen av natten passerande regn. I morgon lördag skurar och 5-8 grader. Sydvästlig vind, efterhand med friska vindbyar.