|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
搞不明白为什么会报错 本来没有报错的 好像我修改了headers里的内容后 就开始报错 然而我看不出来哪里错了
AttributeError: 'NoneType' object has no attribute 'find_all'
全部的代码如下:
import requests
from bs4 import BeautifulSoup
import os
headers = {
'Accept':'image/webp,image/*,*/*;q=0.8',
'Accept-Encoding':'gzip, deflate, sdch',
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Cookie':'doctaobaocookie=1; BDTUJIAID=9ee8f54aeff07ddda45cb8fe54da96ff; Hm_lvt_d86954201130d615136257dde062a503=1492607061; Hm_lpvt_d86954201130d615136257dde062a503=1492607073',
'Host':'image68.360doc.com',
'Referer':'http://www.360doc.com/content/14/0221/14/13773668_354483683.shtml',
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
}
all_url = 'http://www.360doc.com/content/14/0221/14/13773668_354483683.shtml'
start_html = requests.get(all_url,headers=headers)
Soup = BeautifulSoup(start_html.text, 'lxml')
all_a = Soup.find('ul', class_='tklist').find_all('a')
all_img = Soup.find('ul', class_='tklist').find_all('img')
for a in all_a:
title = a.get_text()
href = a['href']
for img in all_img:
img_alt = img['alt']
img_url = img['src']
print(img_alt,img_url)
path = str(img_alt).strip()
os.makedirs(os.path.join("D:\plants", path))
os.chdir("D:\plants\\"+path)
name = img_url[-9:-4]
imgs = requests.get(img_url, headers=headers)
f = open(name+'.jpg', 'ab')
f.write(imgs.content)
f.close()
至于为什么没有抓取到这个标签,具体我不知道,毕竟我也没试过,不知道你的请求是否有错
但我建议你打印一下你请求的网页源代码,看看是不是跟你在网页上见到的一样,如果不一样,那又2个可能:
1,请求的headers是有要求的,需要附带一些值,虽然你加了值,但是可能你加的根本不可用(比如cookie,这种值很可能是变动的,你直接复制一个可能不能用)
2,数据是JS加载的,你请求不到
打印一下原码就知道了
|
|