博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
新浪明星日志推荐系统——爬虫爬取数据(2)
阅读量:6637 次
发布时间:2019-06-25

本文共 1381 字,大约阅读时间需要 4 分钟。

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

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!"

另外附上一张成果图:
你可能感兴趣的文章
01:UI框架加强版
查看>>
PureMVC 简单案例
查看>>
PureMVC思想
查看>>
PureMVC 开发App应用
查看>>
PureMVC
查看>>
ulua介绍和使用
查看>>
is和as
查看>>
动态类型
查看>>
EventTrigger
查看>>
C# 特性
查看>>
02.A*
查看>>
02.基础框架Mono模块
查看>>
02.XML
查看>>
迭代器和泛型for
查看>>
元表和元方法
查看>>
面向对象
查看>>
垃圾回收
查看>>
随机生成不重复的数
查看>>
C#简单选择排序 (sortselecting)
查看>>
unity 技能图标冷却
查看>>