妹子图爬虫代码调试(未解决)

2018-06-25 调试爬虫代码

import requests  ##导入requests
from bs4 import BeautifulSoup  ##导入bs4中的BeautifulSoup
import os

headers = {'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"}  ##浏览器请求头(大部分网站没有这个请求头会报错、请务必加上哦)
all_url = 'http://www.meizitu.com/'
start_html = requests.get(all_url, headers=headers)
soup = BeautifulSoup(start_html.text, 'lxml') 
all_a = soup.find(id='maincontent').find_all('a')
for a in all_a:
    title = a.get_text()
    href = a['href']
    print(title,href)
    html = requests.get(href, headers=headers) 
    html_Soup = BeautifulSoup(html.text, 'html.parser') 
    max_span = html_Soup.find(id='maincontent')
    print(type(max_span))

帮助调试这段爬虫代码报错问题

错误.png

这里的问题是对链接列表all_a的第一个a请求会返回一个NoneType

安装需要的库
pip3 install beautifulsoup4
pip3 install lxml
然后开始debug

  1. 最初认为是该url对应的页面不包含‘maincontent’,但是在浏览器中打开该URL用开发者工具检查发现并不是。
  2. 同时,很快发现第一次请求的url和第二次请求的url是相同的!但第一次返回为NoneType,第二次返回正常。
  3. 有切片截取all_a列表中其他部分然后开始爬取(for a in all_a[3:7]:),错误依旧。

此时,判断可能是页面需要先作一个Cache,或者是这个一个ajax异步请求,先返回了不包含目标内容的response

暂时未解决

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python开发简单爬虫(Python2.X版本,Eclipse工具) 一、爬虫介绍 爬虫调度端:启动、停止爬虫,...
    凛0_0阅读 2,148评论 2 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,891评论 18 139
  • 本月进入主题阅读
    妮妮Gloria阅读 208评论 0 1
  • 袁枚《子不语》中有个蔡书生的故事,大致翻译一下是这样的: 杭州北关外有座房子经常闹鬼,屋主不敢住,别人也不敢买,唯...
    蔷薇_fbad阅读 1,192评论 0 1
  • 2016年对于中国手游来说是非常重要的一年。这一年移动游戏市场实际销售收入为819.2亿元,占比历史性地超过客户端...
    天之游阅读 1,184评论 0 6