【问题标题】:How can I scrape the comment off a HTML tag [closed]如何从 HTML 标记中删除评论 [关闭]
【发布时间】:2023-03-29 00:11:02
【问题描述】:

我正在尝试从特定的 HTML 中抓取评论,但我遇到了问题。我没有问题刮掉标签下的所有文本,但只有 cmets。谁能帮帮我。

这是我的代码

from bs4 import BeautifulSoup
from urllib.request import urlopen
from urllib.error import HTTPError, URLError

page=urlopen('https://catalog.data.gov/dataset')
soup=BeautifulSoup(page,'lxml')

dataset_number=soup.select('div .new-results')
print(dataset_number)

我想从上述代码返回的数据中提取HTML注释

【问题讨论】:

  • @ThomasSablik 我做了一些修改,现在更清楚了吗?
  • @ThomasSablik 我做了一些修改,现在更清楚了吗?
  • 您应该将urlopen('https://catalog.data.gov/dataset') 替换为硬编码文本,以便我们可以复制和粘贴它。

标签: python web-scraping beautifulsoup css-selectors urllib


【解决方案1】:

试试这个:

from bs4 import BeautifulSoup,Comment
from urllib.request import urlopen
page=urlopen('https://catalog.data.gov/dataset')
soup=BeautifulSoup(page,'lxml')
dataset_number=soup.select('div .new-results')[0]
for com in dataset_number(text=lambda text: isinstance(text, Comment)):
    print(com)

【讨论】:

    【解决方案2】:

    我有一个案例,我用 regex 方便地做到了这一点。

    from bs4 import BeautifulSoup
    from urllib.request import urlopen
    import re
    
    page=urlopen('https://catalog.data.gov/dataset')
    soup=BeautifulSoup(page,'lxml')
    
    dataset_number=soup.select('div .new-results')
    result = re.findall('<!--(.*)-->', str(dataset_number))
    print(result)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-03
      • 2011-12-18
      • 1970-01-01
      • 2011-03-31
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      相关资源
      最近更新 更多