我创建了一个简单的类,将它的设置设置为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/