【发布时间】:2019-03-14 18:04:10
【问题描述】:
我正在尝试使用 BeautifulSoup 处理从在线网站提取的 html 数据。我创建了一个类“网站”,其中有几个函数可以根据我的目标文本位的标题、类等实例变量解析 html 脚本。例如
class Websites:
def __init__(self, url, header, class_):
self.url = url
self.header = header
self.class_ = class_
def html(self):
url = self.url
webpage = urlopen(url)
page_html = webpage.read()
webpage.close()
page_soup = bs(page_html, 'html.parser')
return page_soup
将这些变量(标头、类)转换为类中的实例变量很简单,但是我正在努力将一个变量转换为类实例变量。我相信在 BeautifulSoup 术语中它被称为“标签”。如果我在类的实例上调用上面显示的 html 函数,我会得到一个可以保存为变量 (page_soup) 的 html 文本块,我可以在其中添加一个标签,例如像这样:
page_soup.div.h1.p
这指定了我想要访问的 html 脚本的确切部分。有什么办法可以修改上面显示的类 init 函数,以便它可以接受输入,例如:
amazon = Websites(url = 'Amazon.co.uk', tag = '.div.h1.p')
并将其用作类方法中的实例变量,如 self.tag?
【问题讨论】:
标签: python html beautifulsoup