【问题标题】:How to get date and author using Beautiful Soup web scraping?如何使用 Beautiful Soup 网页抓取获取日期和作者?
【发布时间】:2021-06-14 00:26:44
【问题描述】:

我正在创建一个模板,用于从网站中提取新闻以进行语义分析。我刚刚开始学习使用 bs4 和 selenium 进行网络抓取。

我可以实现从每个新闻中分离并获取标题、副标题、帖子ID和文本。

title = soup.find_all('h1')[1].text
subtitle = soup.find_all('h2')[0].text
news_id  = (soup.find("article"))["id"]
text = article(corpus) >#function and argument defined earlier

我坚持提取日期,但我使用的函数 (soup.find_all("span")[39].text ) 并不是所有新闻的好模式。

我需要一个可以从以下内容中提取日期和作者的函数:

 <span class="author">
     Por <strong><span>Djenifer Dias</span></strong> <span>
       8 jun 2021, 12h15    </span>
 </span>,
 <span>Djenifer Dias</span>,
 <span>
       8 jun 2021, 12h15    </span>

我需要获得作者“Djenifer Dias”和日期“2021 年 6 月 8 日,12h15 ”。

有人可以帮我吗?

谢谢!

【问题讨论】:

  • 使用"author" 类获取跨度,然后获取第一个和第二个子跨度。不难。
  • “作者”标签的结构总是一样的吗?包含指向页面/站点的链接可能会更容易获得答案。

标签: python web-scraping beautifulsoup


【解决方案1】:

要从 HTML 中获取作者姓名和日期,您可以使用以下示例:

from bs4 import BeautifulSoup

html_doc = """
 <span class="author">
     Por <strong><span>Djenifer Dias</span></strong> <span>
       8 jun 2021, 12h15    </span>
 </span>,
 <span>Djenifer Dias</span>,
 <span>
       8 jun 2021, 12h15    </span>
"""

soup = BeautifulSoup(html_doc, "html.parser")

author = soup.find(class_="author").span.get_text(strip=True)
date = soup.find(class_="author").find_all("span")[-1].get_text(strip=True)

print(author)
print(date)

打印:

Djenifer Dias
8 jun 2021, 12h15

或者使用 CSS 选择器:

author = soup.select_one(".author > strong").get_text(strip=True)
date = soup.select_one(".author > span").get_text(strip=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    相关资源
    最近更新 更多