07_知乎

作者: 过桥 | 来源:发表于2017-05-31 16:54 被阅读42次

    简述

    下一阶段抓取目标对象"大知乎",本篇幅主要使用页面解析方式抓取大V关注对象用户头像。

    目标对象

    知乎轮子哥关注对象

    大V轮子哥

    使用包

    import time, os #定时抓取
    import requests 
    from bs4 import BeautifulSoup
    import datetime #精确时间
    

    实现方式

    依旧使用页面解析,获取图片URL,下载至本地保存

    #异常捕获
    try:
        html = download_page(DOWNLOAD_URL + str(pageNum))
    except:
        print("抓取异常:" + DOWNLOAD_URL + str(pageNum))
        time.sleep(2) #延迟N秒再抓取
        html = download_page(DOWNLOAD_URL + str(pageNum))
    
    #文件目录检查
    if os.path.exists(DOWNLOAD_User) == False:
       os.makedirs(DOWNLOAD_User)
    
    #文件下载
    if os.path.isfile(img_localhost) == False or os.path.getsize(img_localhost) == 0:
         try:
             img_req = requests.get(image_url, timeout=20)
             with open(img_localhost, 'wb') as f:
                 f.write(img_req.content)
        except:
             now = datetime.datetime.now()
             with open("error.log", 'w') as f:
                  f.write(now.strftime('%Y-%m-%d %H:%M:%S') + ' 【错误】当前图片无法下载,失效地址为:' + image_url)
    
    #如果有下页,递归
    if list_soup.find_all('button')[-1].text == "下一页":
        beginSpider(pageNum + 1)
    

    总结

    • 因网络原因无法抓取、程序崩溃等问题,使用延迟递归解决
    • 页面分布加载,导致每次仅能抓取当前页面前三条数据(未解决)

    源码:
    spider_www.zhihu.com_following

    相关文章

      网友评论

        本文标题:07_知乎

        本文链接:https://www.haomeiwen.com/subject/zhdjfxtx.html