跟着零基础学习python第二版爬电影250遇到了问题,求解答!
import requestsimport bs4
r = requests.get('http://www.imdb.cn/IMDB250/')
soup = bs4.BeautifulSoup(r.text,"html.parser")
targets = soup.find_all('div',class_='ss-3 clear')
for each in targets:
print(each.a.p.text)
因为豆瓣网爬不到了,获取网页然后.text是一个空列表,我就去爬了IMDB电影top250,跟着书上得步骤一步一步写出了如上得代码,但是问题出现了!无论如何,这段代码只能爬到第一部电影《肖申克得救赎》。我思考了很久尝试了很多次,发现target是一个列表,但是只有一个元素,虽然包含了整个网页得所有文本,但是一个元素不能迭代出每部电影得名字,是不是soup.find_all没用好啊,有没有爬电影250成功了得同学解救一下我啊…… 爬豆瓣的时候,你是不是没有加headers?
加上试试 本帖最后由 suchocolate 于 2020-4-10 13:28 编辑
headers = {'user-agent': 'firefox'}
r = requests.get('http://www.imdb.cn/IMDB250/',headers=headers)
requests包默认headers的user-agent是python-requests,一般会被网站反扒,自己设置一个其他的,就不会被反扒了。 targets = soup.find_all('p',class_='bb')
这个就是每个电影的名字,你是要这个么 疾风怪盗 发表于 2020-4-10 13:33
targets = soup.find_all('p',class_='bb')
这个就是每个电影的名字,你是要这个么
成了!就是这样!原来可以直接查找子类啊,太厉害了! qiuyouzhi 发表于 2020-4-10 13:26
爬豆瓣的时候,你是不是没有加headers?
加上试试
我等会试试 suchocolate 发表于 2020-4-10 13:27
headers = {'user-agent': 'firefox'}
r = requests.get('http://www.imdb.cn/IMDB250/',headers=headers) ...
刚看了爬虫隐藏得视频了,我等会试试爬豆瓣
页:
[1]