新浪明星日志推荐系统——爬虫爬取数据(2)

由于之前的改造,现在将爬虫的功能做了一些改变,具体实现的功能是将推荐的日志全部抓取下来,并存放在以文章标题命名的文件中,代码如下:

 

import urllib
import os,re
import sys
from bs4 import BeautifulSoup
reload(sys)
sys.setdefaultencoding("utf-8")

def if_str(str_t):
    if re.search(r"^.*[a-zA-Z].*",str_t)== None:
    print " saf"

def get_blog(url):
    page = urllib.urlopen(url).read()
    if len(page)!=0:
        if BeautifulSoup(page).title != None:
            str_title = BeautifulSoup(page).title.string #获取title名称,并作为文件名称
            if re.search(r"^.*[a-zA-Z|\s\",<>].*",str_title) == None:
                fp = file("%s.txt" % str_title,"w")
                page_js = r"<!-- 正文开始 -->[\s\S]*<!-- 正文结束 -->" # 正则匹配文章正文部分
                if re.search(page_js,page):
                    soup = BeautifulSoup(re.search(page_js,page).group(0),from_encoding="gb18030")
                    for div in soup.find_all("div"):
                        fp.write(div.get_text().lstrip())
                        fp.close()

if "__main__"==__name__:
    i = 1
    if i<7:
        for j in range(1,140):
            url = "http://roll.ent.sina.com.cn/blog/star/index_" + str(i) +".shtml"
            fp = file("EveryPageHref.txt","a")
            fp.write(url)
            fp.write("\n")
            fp.close()
    i+=1
    page = urllib.urlopen(url).read()
    soup = BeautifulSoup(page,from_encoding = "gb18030")
    list_ul = soup.find_all("ul",class_="list_009")
    list_li = list_ul[0].find_all("li")
    for li in list_li:
        l ist_a = li.find_all("a")
        one_link = list_a[1].get("href") #获取连接
        str_title = list_a[0].get_text()
        if one_link != "http://blog.sina.com.cn/s/blog_4a6c545e0102vgwe.html":
        get_blog(one_link)

print "OK!"

 

另外附上一张成果图:


搜索与推荐Wiki

扫一扫 关注微信公众号!号主 专注于搜索和推荐系统,尝试使用算法去更好的服务于用户,包括但不局限于机器学习,深度学习,强化学习,自然语言理解,知识图谱,还不定时分享技术,资料,思考等文章!


                             【技术服务】,详情点击查看:https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg 


外包服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值