解析 HTML 以检索术语

我创建了一个爬虫。所以,现在我有一堆被抓取的 URL。我需要使用向量空间或至少是 HTML 中所有术语的列表来创建索引。


假设这个随机网页https://www.centralpark.com/things-to-do/central-park-zoo/polar-bears/


如何解析该网页中的所有术语?我有点不明白我应该在特定标签之间抓取文本还是其他东西或者我应该使用哪个库?我完全迷失了。


这是我需要对 HTML 执行的操作:


你可以在线使用 html 解析器,但原则上,你可以使用 html 正文中的文本...或者像这样的 p /p、h2 /h2 这样的标签之间的文本。


任何解析上述 HTML 的帮助表示赞赏。


编辑:我正在尝试 BeautifulSoup:


import bs4

from urllib.request import  urlopen as uReq

from bs4 import BeautifulSoup as soup


    my_url='https://www.centralpark.com/things-to-do/central-park-zoo/polar-bears/'

    # opening up connection

    uClient = uReq(my_url)

    page_html = uClient.read()

    # close connection

    uClient.close()

    page_soup = soup(page_html, features="html.parser")

    print(page_soup.p)

如何将所有文本元素放入列表?


前任:


<p>This is p<\p>

<p>This is another p<\p>

<h1>This is h1<\h1>

maybe some other text tags


List = ['This is p','This is another p','This is h1',...]


呼如林
浏览 158回答 2
2回答

www说

很好,你进步了!我推荐你pip install requests并使用它。您会发现它是一个比 urllib 方便得多的 API。(此外,它只是soup该变量的常用名称。)如何将所有文本元素放入列表?就这么简单:&nbsp; &nbsp; print(list(page_soup.find_all('p')))这就解释了为什么这么多人非常喜欢 BeautifulSoup。这将显示页面的摘录:&nbsp; &nbsp; paragraphs = page_soup.find_all('p')&nbsp; &nbsp; for p in paragraphs:&nbsp; &nbsp; &nbsp; &nbsp; print(str(p)[:40])<p class="lead">There are no longer any&nbsp;<p><strong>Polar Bear</strong> (Ursus Ma<p><strong>Zoo collection includes:</str<p><strong>Found in the wild:</strong> A<p><strong>See Them at the Central Park&nbsp;<p><strong>Description:</strong> The mal<p><strong>Zoo Bear Habitat:</strong> Th<p><strong>What do they eat:</strong>&nbsp; T<p><strong>Life span:</strong> 25 to 30&nbsp;<p><strong>Threats:</strong> Global warm<p><strong>Fun Facts:</strong> A newborn<p>Copyright © 2004 - 2018 Greensward Gr这是要注意重要的p是不是一个字符串。它是一个可以搜索的对象,就像它来自的汤一样。您可能想在其中找到<strong>跨度。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python