Python 2.7 如何将文本和图像拼读在一起?
我正在用beautifulSoup4制作网页刮板。我想得到文章的文字和图片,但有一些问题! html代码如下所示:Python 2.7 如何将文本和图像拼读在一起?,python-2.7,web-scraping,beautifulsoup,Python 2.7,Web Scraping,Beautifulsoup,我正在用beautifulSoup4制作网页刮板。我想得到文章的文字和图片,但有一些问题! html代码如下所示: <div> some texts1 <br /> <img src="imgpic.jpg" /> <br /> some texts2 </div> 并像往常一样使用urlib2将所有图像保存在div中 最后,我将它们保存在一个html页面中,最后将所有文本和图像放在顶部,但我想将它们保存在新的html页面中
<div>
some texts1
<br />
<img src="imgpic.jpg" />
<br />
some texts2
</div>
并像往常一样使用urlib2
将所有图像保存在div
中
最后,我将它们保存在一个html页面中,最后将所有文本和图像放在顶部,但我想将它们保存在新的html页面中,就像我刮取它们的页面一样,我的意思是首先一些文本1
然后图像
然后一些文本2
有什么建议吗?这不是最好、正确的方法,但应该可以:
from bs4 import BeautifulSoup
html = "<div>\
some texts1\
<br />\
<img src=\"imgpic.jpg\" />\
<br />\
some texts2\
</div>"
soup = BeautifulSoup(html)
text = "+".join(soup.stripped_strings).split("+")
print text[0]
print soup.find("img")['src']
print text[1]
我不使用
get_text()
,而是将您想要的整个
部分作为字符串返回。这样,你就可以保证在顶部和底部都有正确的文本。从那里,您可以剥离部分字符串以获得所需内容:
# post_soup is the <div> element you posted
s = post_soup.prettify()
split_s = s.split('<br/>')
top = split_s[0].strip('<div>')
bottom = split_s[-1].strip('</div>')
+1怎样才能更好?它在顶部/底部正确地获取多行字符串。
some texts1
imgpic.jpg
some texts2
# post_soup is the <div> element you posted
s = post_soup.prettify()
split_s = s.split('<br/>')
top = split_s[0].strip('<div>')
bottom = split_s[-1].strip('</div>')
>>> top
u'\n some texts1\n '
>>> bottom
u'\n some texts2\n'