Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Beautifulsoup和python_Python_Beautifulsoup - Fatal编程技术网

Beautifulsoup和python

Beautifulsoup和python,python,beautifulsoup,Python,Beautifulsoup,我对使用beautifulsoup非常陌生,因此我的问题可能看起来像是我误解了什么,但这里说的是 我目前正试图制作一本同义词词典,因为我目前能找到的词典并不令人惊奇。在这方面,我是建立在别人的作品上的,那个制作PyDictionary的人,因此我从他的作品中提取同义词 在本例中,我试图仅从视图源中提取名词同义词: 我发现这篇文章表明下一个关联块下的同义词是名词: <div class="synonym-description">

我对使用beautifulsoup非常陌生,因此我的问题可能看起来像是我误解了什么,但这里说的是

我目前正试图制作一本同义词词典,因为我目前能找到的词典并不令人惊奇。在这方面,我是建立在别人的作品上的,那个制作PyDictionary的人,因此我从他的作品中提取同义词

在本例中,我试图仅从视图源中提取名词同义词:

我发现这篇文章表明下一个关联块下的同义词是名词:

            <div class="synonym-description">
                <em class="txt">noun</em>
                <strong class="ttl">animate being; mammal</strong>
            </div>
            <div class="relevancy-block">
                <div class="relevancy-list">

我真的不知道下一步该怎么办,我尝试过谷歌搜索,但没有真正的效果。

您可以使用find_all函数,其中第一个参数是类型('div',a'等),第二个参数可以按类过滤

soup.find_all('em', {'class':"txt"})
通过这种方式,您将使用类“txt”获取所有“em”

soup.find_all('div', {'class':"relevancy-block"})

在这里,您将找到所有类名为“relevancy block”的“div”

您可以使用find_all函数,其中第一个参数是类型(“div”、“a”等),第二个参数可以按类过滤

soup.find_all('em', {'class':"txt"})
import requests, bs4
url = "http://www.thesaurus.com/browse/animal?s=t"
r = requests.get(url)
soup = bs4.BeautifulSoup(r.text, 'lxml')
for txt in soup.find_all(class_="txt"):
    relevancy_list = txt.find_next(class_="relevancy-list")
通过这种方式,您将使用类“txt”获取所有“em”

soup.find_all('div', {'class':"relevancy-block"})

在这里,您可以找到所有类名为“relevancy block”的“div”

我找到了这样做的方法,这要感谢我收到的两条评论:

import requests, bs4
url = "http://www.thesaurus.com/browse/animal?s=t"
r = requests.get(url)
soup = bs4.BeautifulSoup(r.text, 'lxml')
for txt in soup.find_all(class_="txt"):
    relevancy_list = txt.find_next(class_="relevancy-list")
下面的代码首先查看过滤器,然后如果过滤器是一个名词或动词,如果它是一个名词,则列出所有分类为常用词的名词

def _get_soup_object(url):
    return BeautifulSoup(requests.get(url).text)

term="animal" 

data = _get_soup_object("http://www.thesaurus.com/browse/{0}".format(term))

for selector_var in data.find_all(class_="filters"):

    word_type=selector_var.find_all(class_="txt")
    if word_type[0].text=="adj":
        print("This is an adjective, which we don't want")

    elif word_type[0].text=="noun":
        print("This is a noun, which we do want")

        word_list=selector_var.find_all(class_="common-word")
        for indv_word in word_list:
            print(indv_word.text[:-4])

多亏了我收到的两条评论,我找到了这样做的方法:

下面的代码首先查看过滤器,然后如果过滤器是一个名词或动词,如果它是一个名词,则列出所有分类为常用词的名词

def _get_soup_object(url):
    return BeautifulSoup(requests.get(url).text)

term="animal" 

data = _get_soup_object("http://www.thesaurus.com/browse/{0}".format(term))

for selector_var in data.find_all(class_="filters"):

    word_type=selector_var.find_all(class_="txt")
    if word_type[0].text=="adj":
        print("This is an adjective, which we don't want")

    elif word_type[0].text=="noun":
        print("This is a noun, which we do want")

        word_list=selector_var.find_all(class_="common-word")
        for indv_word in word_list:
            print(indv_word.text[:-4])

太棒了,那么下一步就是,在我第一次找到名词后,我在下面的div class=“relevancy block”中是什么样子的?@noein,你说找到名词是什么意思?很抱歉,我没有非常清楚,我找到了答案,并将立即发布。太棒了,那么下一步就是,我在下面的div class=“relevancy block”中是什么样子的在我第一次找到Non之后?@nonein,你说的“找到Non”是什么意思?很抱歉我没有说得非常清楚,我找到了答案并将立即发布。非常感谢你的帮助!我找到了答案,会写出来的!非常感谢你的帮助!我找到了答案,会写出来的!