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

Posted Mnster_Lu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)#正常停顿,以免服务器拒绝访问

 

以上是关于python实现的刷博客浏览量(有待改进)的主要内容,如果未能解决你的问题,请参考以下文章

2014年七月写过的代码,现在看来,还有待改进呀

7-17 汉诺塔的非递归实现(25 分)(有待改进)

Python-Dijkstra的算法实现

基于python和selenium的刷网课的代码

一个python程序——聊天

Java代码中特殊注释