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

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

暂时未解决

你可能感兴趣的:(妹子图爬虫代码调试(未解决))