首页 > 编程语言 > 详细

python实现的刷博客浏览量(有待改进)

时间:2016-05-27 21:46:25      阅读:164      评论:0      收藏:0      [点我收藏+]

python3.4,

使用了url.request,re ,bs4这些库,

在mooc看了很久爬虫的代码,

感觉自己可以实现这么一个贱贱的功能,

但是写完了之后访问页面是可以的,

但是浏览量并不增加。

宝宝心里苦,

感觉还要每次清空Cookie,

有空再改。

import urllib.request
import re
import time
import random
from bs4 import BeautifulSoup

p = re.compile(/MnsterLu/p/............)
#自己的博客主页
url = "http://www.cnblogs.com/MnsterLu/"
#http://www.cnblogs.com/MnsterLu/p/5532399.html
#http://www.cnblogs.com/MnsterLu/p/5518372.html

#让python模仿浏览器进行访问
opener = urllib.request.build_opener()
opener.addheaders = [(User-agent, Mozilla/5.0)]

html = opener.open(url).read().decode(utf-8)

allfinds = p.findall(html)
print(allfinds)

urlBase = "http://www.cnblogs.com"#需要将网址合并的部分
#页面中的网址有重复的,需要使用set进行去重复
mypages = list(set(allfinds))
for i in range(len(mypages)):
    mypages[i] = urlBase+mypages[i]

print(要刷的网页有:)
for index , page in enumerate(mypages) :
    print(str(index), page)

#设置每个网页要刷的次数
brushMax = 200

#所有的页面都刷
print(开始刷:)
for index , page in enumerate(mypages) :
    brushNum=random.randint(0,brushMax)
    for j in range(brushNum):
        try :
            pageContent = opener.open(page).read().decode(utf-8)
            #使用BeautifulSoup解析每篇博客的标题
            soup = BeautifulSoup(pageContent)
            blogTitle = str(soup.title.string)
            blogTitle = blogTitle[0:blogTitle.find(-)]
            print(str(j) , blogTitle)

        except urllib.error.HTTPError:
            print(urllib.error.HTTPError)
            time.sleep(1)#出现错误,停几秒先

        except urllib.error.URLError:
            print(urllib.error.URLError)
            time.sleep(1)#出现错误,停几秒先
        time.sleep(0.5)#正常停顿,以免服务器拒绝访问

 

python实现的刷博客浏览量(有待改进)

原文:http://www.cnblogs.com/MnsterLu/p/5535991.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!