第二只Python爬虫

同样参照网上教程,同时把会的不多的html标签又复习了一下

同时安利一个网站,我唯一加入过的一个社团官网(web开发协会

www.nutjs.com

前任会长是属于大牛级的存在,目前网站已多次重构,花生太神辣。

好了,于是用这个网站做了下练习

import re
import urllib.request
import urllib
from collections import deque

queue = deque()
visited = set()

url = 'http://www.nutjs.com/'
# 初始抓取网站

queue.append(url)
cnt = 0 #抓取网页计数器

while queue:    #队列循环bfs抓取
    url = queue.popleft()
    visited |= {url}     #去重,防止重复抓取

    print('正在抓取:'+ url)
    cnt+=1
    urlop = urllib.request.urlopen(url)
    if 'html' not in urlop.getheader('Content-Type'): continue 
    #过滤出合法所需的文本
    try:
        data = urlop.read().decode('utf-8')
    except:
        continue
    
    linkre = re.compile('href=\"(.+?)\"')
    for x in linkre.findall(data):
        # print(x)
        if 'http' in x and x not in visited:
            queue.append(x)

运行效果如下:

posted @ 2016-09-12 13:31  Kurokey  阅读(150)  评论(0编辑  收藏  举报