新浪明星日志推荐系统——爬虫爬取数据(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!"

另外附上一张成果图:

时间: 2024-10-22 16:39:49

新浪明星日志推荐系统——爬虫爬取数据(2)的相关文章

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

今天有了一个想法,想自己用Python写一个新浪明星日志推荐系统 那么第一步要完成的工作就是获得新浪明星日志的数据,于是自己写了一个爬虫,实现的功能是爬取新浪明星日志的作者,推荐的文章链接,以及作者日志列表或者首页链接,具体程序如下: # -*- coding: utf-8 -*- """ Created on Wed May 20 13:55:00 2015 @author: Administrator """ import urllib im

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

现在进行推荐的第三步: 1:利用数据的格式如下: 2:编程语言采用的是Java,源代码如下: package top10; import java.util.*; import java.io.*; public class top { public static void top(String []one,String []two,String []three){ int []one1 = new int[15688]; for(int i =0;i<15687;i++) { one1[i]=

Python爬虫爬取数据的步骤

爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多网页的变化规律,基本上都是只有小部分有所变化,如:有的网页只有网址最后的数字在变化,则这种就可以通过变化数字将多个网页链接获取: 2.把获取得到的多个网页链接存入字典,充当一个临时数据库,在需要用时直接通过函数调用即可获得: 3.需要注意的是我们的爬取并不是随便什么网址都可以爬的,我们需要遵守我们的

python爬虫—爬取百度百科数据

爬虫框架:开发平台 centos6.7 根据慕课网爬虫教程编写代码 片区百度百科url,标题,内容 分为4个模块:html_downloader.py 下载器 html_outputer.py 爬取数据生成html模块 html_parser 获取有用数据 url_manager url管理器 spider_main 爬虫启动代码 spider_main.py 1 #!/usr/bin/python 2 #-*- coding: utf8 -*- 3 4 import html_download

如何防止网站被爬虫爬取的几种办法

如何防止网站被爬虫爬取的几种办法 小 中 大 chen 2013-10-08 23:26 Linux 547 次浏览 抢沙发 今天想对一个问题进行分析和讨论,就是关于爬虫对网站页面爬取的问题,有些网站通过爬虫去采集其它的网站页面信息作为己用,大量的爬取行为会对web服务器有比较性能有影响,主要的表现就是会变得很慢. 对于如何防止网站被爬取,我想从以下几种方法去分析: 1.基于程序本身去防止爬取:作为爬虫程序,爬取行为是对页面的源文件爬取,如爬取静态页面的html代码,可以用jquery去模仿写h

【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜

实验网站:虾米音乐排行榜 网站地址:http://www.xiami.com/chart 难度系数:★☆☆☆☆ 依赖库:request.lxml的etree (安装lxml:pip install lxml) IDEA开发工具:PyCharm_2017.3 Python版本:Python3 期望结果:爬取出排行版歌名以及对应歌手 运行效果图: 音乐排行榜: 爬取数据结果图: 像这种简单的爬取就没必要使用Scrapy框架进行处理,是在有点大材小用,不过如果你刚开始学Scrapy的话,拿这些简单的练

python爬虫—爬取英文名以及正则表达式的介绍

python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一.  爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个csv文件中:再读取csv文件当中的每个英文名链接,采用循环的方法读取每一个英文名链接,根据每个英文名链接爬取每个链接中的数据,保存在新的csv文件当中. 需要写一个爬取英文名链接的函数.将爬取的内容保存在csv文件的函数以及读取csv文件内容的函数.爬取英文名详情页内容的函数. 表5.3.1 函数名

python爬虫爬取csdn博客专家所有博客内容

python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 结果如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.

python爬虫爬取美女图片

python 爬虫爬取美女图片 #coding=utf-8 import urllib import re import os import time import threading def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImgUrl(html,src): srcre = re.compile(src) srclist = re.findall(srcre,html)