我正在尝试从该网站(日语)中提取新闻发布的日期,链接和标题:
https://www.rinnai.co.jp/releases/index.html
这是到目前为止我尝试过的代码:
import requests
from bs4 import BeautifulSoup
r=requests.get("https://www.rinnai.co.jp/releases/index.html")
c=r.content
soup=BeautifulSoup(c,"html.parser")
all=soup.find_all("dl",)
我的预期结果是:
2019年01月09日
/releases/2019/0109/index_2.html
「深型スライドオープンタイプ」食器洗い乾燥機2019年3月1日発売 食器も調理器具もまとめて入る大容量
2019年01月09日
/releases/2019/0109/index_1.html
シンプルキッチンに似合う洗練されたドロップインコンロ 2月1日新発売 耐久性に優れたステンレストッププレート仕様のグリルレスコンロ
我的实际结果是:
[<dl>
<dt>2019年01月09日</dt>
<dd>
<a href="/releases/2019/0109/index_2.html">
「深型スライドオープンタイプ」食器洗い乾燥機2019年3月1日発売 食器も調理器具もまとめて入る大容量
</a></dd>
</dl>, <dl>
<dt>2019年01月09日</dt>
<dd>
<a href="/releases/2019/0109/index_1.html">
シンプルキッチンに似合う洗練されたドロップインコンロ 2月1日新発売 耐久性に優れたステンレストッププレート仕様のグリルレスコンロ
</a></dd>
</dl>, <dl>
答案 0 :(得分:3)
您可以通过在index_news
div
下抓取来查找标题:
from bs4 import BeautifulSoup as soup
import requests
d = soup(requests.get('https://www.rinnai.co.jp/releases/index.html').text, 'html.parser')
results = [[i.find('dt').text, *(lambda x:[x.a['href'], x.text])(i)] for i in d.find('div', {'id':'index_news'}).find_all('dl')]
输出(前两则新闻):
[['2019年01月09日', '/releases/2019/0109/index_2.html', '\n2019年01月09日\n\n\n\n\n\n「深型スライドオープンタイプ」食器洗い乾燥機2019年3月1日発売 食器も調理器具もまとめて入る大容量\n\n\n\n\n'], ['2019年01月09日', '/releases/2019/0109/index_1.html', '\n2019年01月09日\n\n\n\n\n\nシンプルキッチンに似合う洗練されたドロップインコンロ 2月1日新発売 耐久性に優れたステンレストッププレート仕様のグリルレスコンロ\n\n\n\n\n'].....]
答案 1 :(得分:1)
这没有必要使它复杂化,而您已经到了一半。您可以仅遍历all
并从每个dl
获取所需的数据。然后,您可以选择将其打印或保存到列表中。
import requests
from bs4 import BeautifulSoup
r=requests.get("https://www.rinnai.co.jp/releases/index.html")
c=r.content
soup=BeautifulSoup(c,"html.parser")
all=soup.find('div',id='index_news').find_all("dl")
#uncomment below line if saving to a list
#all_data=[]
for dl in all:
date=dl.find('dt').text.strip()
link=dl.find('a')['href'].strip()
title=dl.find('a').text.strip()
print(f'{date}\n{link}\n{title}\n')
#instead of printing you can save it to a list if you want
#uncomment below line if saving to a list
#all_data.append([date,link,title])
输出:
2019年01月09日
/releases/2019/0109/index_2.html
「深型スライドオープンタイプ」食器洗い乾燥機2019年3月1日発売 食器も調理器具もまとめて入る大容量
2019年01月09日
/releases/2019/0109/index_1.html
シンプルキッチンに似合う洗練されたドロップインコンロ 2月1日新発売 耐久性に優れたステンレストッププレート仕様のグリルレスコンロ
...