1. 程式人生 > >Python一日一練05----怒刷點選量

Python一日一練05----怒刷點選量

功能

自動獲取CSDN文章列表,並對每篇文章增加點選量.

原始碼

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

p = re.compile('/a359680405/article/details/........')

#自己的部落格主頁
url = "http://blog.csdn.net/a359680405"

#使用build_opener()是為了讓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://blog.csdn.net"#需要將網址合併的部分
#頁面中的網址有重複的,需要使用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.1)#正常停頓,以免伺服器拒絕訪問