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)#正常停顿,以免服务器拒绝访问
时间: 2024-10-17 01:15:03