我创建了一个简单的类,将它的设置设置为BeautifulSoup,但是每次尝试使用它(项目“ soup”)时,他都会返回错误。

class Settings:

    def __init__(self, url):
        self.url = url
        requests.get(url, headers={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'}, timeout=15)
        html = urlopen(url)
        soup = BeautifulSoup(html, 'lxml')
        type(soup)

    def soup_element(self):
        return(self.type(soup))

settings_website_1 = Settings('https://www.auchandirect.pl/auchan-warszawa/pl/search?text=pepsi+cola&callback=true')
print(settings_website_1.soup_element())


如何正确找到元素的类型(汤)?要在这样的语法中使用它?

links = soup.findAll('a')


任何帮助将不胜感激。

编辑:

url = "https://www.auchandirect.pl/auchan-warszawa/pl/search?text=pepsi+cola&callback=true"
r = requests.get(url, headers={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'}, timeout=15)
html = urlopen(url)
soup = BeautifulSoup(html, 'lxml')
type(soup)

最佳答案

您尚未将soup设为班级成员。

尝试更改以下内容:

__init__方法中,将soup更改为self.soup

并将soup_element方法更改为:

def soup_element(self):
    return self.soup


现在,您可以使用:

WEBSITE = 'https://www.auchandirect.pl/auchan-warszawa/pl/search?' \
          'text=pepsi+cola&callback=true'
settings_website = Settings(WEBSITE)
soup_obj = settings_website.soup_element()
print soup_obj.findAll("a")


并获得结果列表:

[<a class="logo logo-auchan " href="/auchan-warszawa/pl/">\n<img alt="Zakupy spo\u017cywcze przez Internet \u2013 Zbijamy ceny
zawodowo online \u2013 Sklep Auchandirect.pl" class=" lazyload" data-src="/images/h42/hfb/8805727109150.png" height="" src=
"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" title="Auchan.pl logo" width=""/>\n</a>, <a class="logo
logo-mobile " href="/auchan-warszawa/pl/">\n<img alt="Zakupy spo\u017cywcze przez Internet \u2013 Zbijamy ceny zawodowo online \u2013
Sklep Auchandirect.pl" class=" lazyload" data-src="/images/h42/hfb/8805727109150.png" height="" src=
...

关于python - 返回类内的元素Python。美丽汤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52919644/

10-13 03:27