07_知乎

简述

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

目标对象

知乎轮子哥关注对象

07_知乎_第1张图片
大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_知乎)