找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2532|回复: 5

[求助] 求大神看看find_all报错

1

主题

3

帖子

3

积分

贫民

积分
3
jxdcjs 发表于 2019-12-30 20:41:32 | 显示全部楼层 |阅读模式
import requests

from bs4 import BeautifulSoup

res = requests.get('https://movie.douban.com/top250?start=0&filter=')
soup = BeautifulSoup(res.text,'html.parser')
items = soup.find('ol', class_="grid_view").find_all('li')
print(items)# 报错# AttributeError: 'NoneType' object has no attribute 'find_all'
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2019-12-31 12:27:16 | 显示全部楼层
本帖最后由 sheeboard 于 2019-12-31 12:31 编辑

需要包头,嫌麻烦用selenium。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
jxdcjs  楼主| 发表于 2019-12-31 17:03:03 | 显示全部楼层
sheeboard 发表于 2019-12-31 12:27
需要包头,嫌麻烦用selenium。

大佬能稍微具体一点点吗,我有点小白,查了好久也没查到
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2020-1-2 08:58:01 | 显示全部楼层
from bs4 import BeautifulSoup
from selenium import webdriver
url='https://movie.douban.com/top250?start=0&filter='
driver=webdriver.Firefox(executable_path=''/路径/geckodriver“)
driver.get(url)
html=driver.page_source
soup=BeautifulSoup(html,'html.parser')
后面就可以提取你要的数据了。
用requests的话需要设置http包的header,不然返回状态码不是200,就得不到页面代码,这个论坛里用requests抓这个网页的我至少看到过两次例子,不过豆瓣也可能更改过服务端的功能,我没去验证过,自己再找一下吧,作为参考。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
pi_shen 发表于 2020-1-7 19:11:25 | 显示全部楼层
由于网站的爬虫限制,可能需要设置requests的header参数,为查看是否爬取成功,建议加上一句print(res.status_code)查看是否返回状态码200
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
priest0o 发表于 2020-1-19 16:46:05 | 显示全部楼层
首先soup.find('ol', class_="grid_view")没有拿到东西
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表