我正在使用Python2.7+BeautifulSoup4.3.2。我正在尝试使用Python和BeautifulSoup来获取网页上的信息。因为网页在公司网站,需要登录和重定向,所以为了方便练习,我把目标页面的源代码页面复制到一个文件中,保存为“example.html”在C:\中。这是原代码的一部分:port_new_cape452SouthMay09,1997Jan23,200912:05pm 到目前为止我编写的代码是:frombs4importBeautifulSoupimportreimporturllib2url="C:\example.html"page=url
假设我有一个带有div的页面。我可以使用soup.find()轻松获得该div。现在我有了结果,我想打印那个div的整个innerhtml:我的意思是,我需要一个包含所有html的字符串标签和文本放在一起,就像我在javascript中使用obj.innerHTML得到的字符串一样。这可能吗? 最佳答案 TL;DR对于BeautifulSoup4,如果您想要一个UTF-8编码的字节字符串,请使用element.encode_contents(),如果您想要PythonUnicode字符串,请使用element.decode_cont
假设我有一个带有div的页面。我可以使用soup.find()轻松获得该div。现在我有了结果,我想打印那个div的整个innerhtml:我的意思是,我需要一个包含所有html的字符串标签和文本放在一起,就像我在javascript中使用obj.innerHTML得到的字符串一样。这可能吗? 最佳答案 TL;DR对于BeautifulSoup4,如果您想要一个UTF-8编码的字节字符串,请使用element.encode_contents(),如果您想要PythonUnicode字符串,请使用element.decode_cont
我正在尝试从中抓取所有内部html使用BeautifulSoup的网页中的元素。有内部标签,但我不在乎,我只想获取内部文本。例如,对于:RedBlueYellowLightgreen如何提取:RedBlueYellowLightgreen没有.string也不是.contents[0]做我需要的。.extract()也没有,因为我不想提前指定内部标签——我想处理任何可能发生的事情。BeautifulSoup中是否有“获取可见HTML”类型的方法?----更新-----根据建议,尝试:soup=BeautifulSoup(open("test.html"))p_tags=soup.fin
我正在尝试从中抓取所有内部html使用BeautifulSoup的网页中的元素。有内部标签,但我不在乎,我只想获取内部文本。例如,对于:RedBlueYellowLightgreen如何提取:RedBlueYellowLightgreen没有.string也不是.contents[0]做我需要的。.extract()也没有,因为我不想提前指定内部标签——我想处理任何可能发生的事情。BeautifulSoup中是否有“获取可见HTML”类型的方法?----更新-----根据建议,尝试:soup=BeautifulSoup(open("test.html"))p_tags=soup.fin
我想从网站上抓取一个项目列表,并保留它们的显示顺序。这些项目被组织在一个表格中,但它们可以是两个不同类别之一(以随机顺序)。有没有办法提供多个类并让BeautifulSoup4找到任何给定类中的所有项目?我需要实现这段代码的功能,除了保留源代码中的项目顺序:items=soup.findAll(True,{'class':'class1'})items+=soup.findAll(True,{'class':'class2'}) 最佳答案 你可以这样做soup.findAll(True,{'class':['class1','cla
我想从网站上抓取一个项目列表,并保留它们的显示顺序。这些项目被组织在一个表格中,但它们可以是两个不同类别之一(以随机顺序)。有没有办法提供多个类并让BeautifulSoup4找到任何给定类中的所有项目?我需要实现这段代码的功能,除了保留源代码中的项目顺序:items=soup.findAll(True,{'class':'class1'})items+=soup.findAll(True,{'class':'class2'}) 最佳答案 你可以这样做soup.findAll(True,{'class':['class1','cla
我正在使用BeautifulSoup在特定页面上查找用户输入的字符串。例如,我想查看字符串'Python'是否位于页面上:http://python.org当我使用时:find_string=soup.body.findAll(text='Python'),find_string返回[]但是当我使用时:find_string=soup.body.findAll(text=re.compile('Python'),limit=1),find_string按预期返回[u'PythonJobs']当要搜索的单词有多个实例时,这两个语句之间的区别是什么使第二个语句起作用?
我正在使用BeautifulSoup在特定页面上查找用户输入的字符串。例如,我想查看字符串'Python'是否位于页面上:http://python.org当我使用时:find_string=soup.body.findAll(text='Python'),find_string返回[]但是当我使用时:find_string=soup.body.findAll(text=re.compile('Python'),limit=1),find_string按预期返回[u'PythonJobs']当要搜索的单词有多个实例时,这两个语句之间的区别是什么使第二个语句起作用?
目前我有这样的代码:soup=BeautifulSoup(value)fortaginsoup.findAll(True):iftag.namenotinVALID_TAGS:tag.extract()soup.renderContents()除了我不想丢弃无效标签内的内容。调用soup.renderContents()时如何去掉标签但保留内容? 最佳答案 BeautifulSoup库的当前版本在Tag对象上有一个未记录的方法,称为replaceWithChildren()。所以,你可以这样做:html="Good,bad,andu