Python爬虫怎么循环截取html标签中间的内容?

Python爬虫怎么循环截取html标签中间的内容?,第1张

如果是中间的数据直接就用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])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7118614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存