如果是中间的数据直接就用bs4最简单
from bs4 import BeautifulSoup
#这里是请求过来的额数据处理,提取标签
html = BeautifulSoup(response.text, 'html.parser')
body = html.body # 获取body部分数据
div = body.find("div",{'id','today'}) #用find去找div标签,id叫 today的标签里面的数据
就可以了
如果要提取标签内容比如value的值
div = body.find("input",id='hidden_title')['value']
将文章的html代码存入到数据库中,读取时不能简单地截取一定字符,必须根据html的结构适当截取内容,否则将显示错误,下面是使用System.Windows.Forms中的WebBrowser进行Html解析的代码
public string GetAbstract(string content, int maxLength){
string text = ""
System.Windows.Forms.HtmlDocument html
if (content.Length < maxLength)
{
text = content
}
else
{
System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser()
browser.Navigate("about:blank")
html = browser.Document.OpenNew(true)
browser.Dispose()
html.Write(content)
foreach (System.Windows.Forms.HtmlElement ele in html.Body.Children)
{
if (text.Length + ele.OuterHtml.Length < maxLength)
{ text += ele.OuterHtml }
else { break }
}
}
return text
}
}
header('content-type:text/html charset=utf-8')$str = '<li><a href="/news1397/" title="1827年3月5日 意大利物理学家伏打逝世">1827年3月5日 意大利物理学家伏打逝世</a> </li>
<li><a href="/news1398/" title="1871年3月5日 波兰女革命家卢森堡诞辰">1871年3月5日 波兰女革命家卢森堡诞辰</a> </li>
<li><a href="/news1399/" title="1886年3月5日 董必武诞辰">1886年3月5日 董必武诞辰</a> (图)</li> '
preg_match_all('/<a.*>(.*)<\/a>/im', $str, $matches)
var_dump($matches[1])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)