» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

求个批量HTML提取指定class内容的方法

posted by wap, platform: Nexus 7

python+BeautifulSoup干这个是神器,只要几行代码就搞定了。下面附上以前用抓新浪微博的:

# -*- coding:UTF-8 -*-

import urllib2
from BeautifulSoup import BeautifulSoup
# 微博的地址
weiboUrl= "******"

htmlStr        = urllib2.urlopen(weiboUrl)
soup        = BeautifulSoup(htmlStr)

# 分析微博主头像
weiboFacePic        = soup.find('div',{"class":"weiboShow_developer_pic"}).find("img"
weiboFacePic['class']        = "weiboFacePic"

# 分析每个微博内容单元
weiboUnit        = soup.findAll('div',{"class":"weiboShow_mainFeed_listContent"})
for keyi in weiboUnit:
        weiboUnitText        = keyi.find('p',{"class":"weiboShow_mainFeed_listContent_txt"})
        weiboUnitText['class']        = "weiboUnitText"

        weiboUnitImg        = keyi.find('img')

        weiboUnitSendTime        = keyi.find('span',{"class":"weiboShow_mainFeed_listContent_actionTime"})
        weiboUnitSendTime['class']        = "weiboUnitSendTime"
        for keyj in weiboUnitText:
                print weiboFacePic
                print "<div class='weiboContent'>","<a href='http://e.weibo.com/2179063294/app_738247391' target='_blank' style='color:#6EAFD5'>******</a>:"
                print keyj,"</div>"
                print weiboUnitImg
                print "<div style='text-align:right;' class='weibotime'>",weiboUnitSendTime.contents,"</div>"
                print """<div style="border-bottom:1px dotted #DFDFDF; height:10px; margin-bottom:11px;"></div>"""


TOP

posted by wap, platform: Nexus 7

# -*- coding:UTF-8 -*-

import urllib2
from BeautifulSoup import BeautifulSoup
# 设定抓取的HTML的地址
htmlUrl= "http://www.cnbeta.com/"                # 既然是测试就抓CNBETA吧

htmlStr        = urllib2.urlopen(htmlUrl)                # 读取网址的HTML内容
soup        = BeautifulSoup(htmlStr)                # 将HTML内容用BSoup解析,保存到soup变量中

# 分析每个微博内容单元
#htmlUnit        = soup.findAll('td',{"class":"post-body"})        #把 class='post-body' 的 td提取出来
htmlUnit        = soup.findAll('dt',{"class":"topic"})        # 这里就改成cnbeta上文章标题的class吧
for keyi in htmlUnit:
        print keyi.contents                # 加上.contents是只显示你指定标签内的内容,不加则显示包括dt class='topic' 的全部内容



TOP

posted by wap, platform: Nexus 7

批量导入很简单啊,python操作几行就搞定,甚至你自己编个批处理都很简单


TOP

posted by wap, platform: Nexus 7

正则表达式早就过时了,你有写正则表达式的时间,各种HTML、XML解析库早就搞定啦,处理这类玩意还是专业的库更可靠

TOP

发新话题
     
官方公众号及微博