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

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)#正常停顿,以免服务器拒绝访问
原文地址:https://www.cnblogs.com/MnsterLu/p/5535991.html