zoukankan      html  css  js  c++  java
  • 第二只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)

    运行效果如下:

  • 相关阅读:
    19-background
    18-超链接导航栏案例
    17-文本属性和字体属性
    16-margin的用法
    15-浮动
    14-块级元素和行内元素
    13-标准文档流
    12-简单认识下margin
    11-border(边框)
    10-padding(内边距)
  • 原文地址:https://www.cnblogs.com/Kurokey/p/5864494.html
Copyright © 2011-2022 走看看