如题 求一个正则 可以获取 网页中 title 标签中的内容, 内容中 有空格,换行,都能获取到

解决方案 »

  1.   

    #!/usr/local/bin/python# -*- coding: utf-8 -*-#modules
    import urllib2
    import re#configure
    video_baidu = "http://video.baidu.com/"
    html_output_path = "video.html"def spider_top10_videos():
        try:
            url_fp = urllib2.urlopen(video_baidu, None, 30)
            html = url_fp.read()
        except:
            return False
        else:
            url_fp.close()
        match_obj = re.search(r'<ol.*?class="top-list".*?id="index_top_search_list".*?>(.*?)</ol>', html, re.I | re.S)
        if match_obj == None:
            return False
        match_html = match_obj.group(1)
        video_urls = re.findall(r'<a.*?href="(.*?)"', match_html, re.S | re.I)
        return video_urlsdef spider_video_links(url):
        try:
            url_fp = urllib2.urlopen(url, None, 30)
            html = url_fp.read()
        except:
            return False
        else:
            url_fp.close()
        match_obj = re.search(r'<span.*?class="postertitle">(.*?)</span>',
                              html, re.S | re.I)
        if not match_obj:
            return False
        name = match_obj.group(1).strip()
        match_obj = re.search(r'<div.*?id="VideoPcTVMenu".*?>(.*?)</div>',
                              html, re.S | re.I)
        if not match_obj:
            return False
        match_html = match_obj.group(1)
        match_obj = re.findall(r'<a.*?href="(.*?)".*?title="(.*?)"', match_html, re.I | re.S)
        if not match_obj:
            return False
        return {"name":name, "list":match_obj}if __name__ == "__main__":
        video_urls = spider_top10_videos()
        if not video_urls:
            exit
        else:
            with open(html_output_path, "w") as fp_html:
                del video_urls[0]
                fp_html.write('<html><head><meta http-equiv="Content-Type" content="text/html;charset=gbk"/>\
                </head><body><table border="1">')
                for url in video_urls:
                    video = spider_video_links(url)
                    if not video:
                        continue
                    fp_html.write("<tr><td>" + video['name'] +
                        '</td><td><table border="1">')
                    for item in video['list']:
                        fp_html.write('<tr><td><a href="http://video.baidu.com' + item[0] + '">' + item[1]
                        + "</a></td></tr>")
                    fp_html.write("</table></td></tr>")
                fp_html.write("</table></body></html>")
      

  2.   

    直接用JQuery中的选择器获取就行
      

  3.   

    求个PHP的 代码越简洁越好
      

  4.   

    "网页中 title 标签中的内容" 不知道是什么? 举例说明吧.
      

  5.   

    <title>
    这里是内容
    </title>
    就好比是这样  这里是有两个换行的 所以 /<title>(.+?)<\/title>/  是抓不到的  
    求一个 即便有换行,空格都能抓取到的
      

  6.   

    preg_match('/<title>(.+?)<\/title>/is',$s,$m);
    echo $m[1];