python爬虫 为何for循环语句无法输出
高洛峰
高洛峰 2017-04-17 15:06:11
[Python讨论组]

请问下面这段代码,输出时只显示第一排中文标题,然后就停止了,本人小白,,刚学,很多不懂,大虾求解


import urllib2
import re
from bs4 import BeautifulSoup

def crawl(url):
    page = urllib2.urlopen(url)
    contents = page.read()
    soup = BeautifulSoup(contents)
    print(u' 豆瓣电影TOP250:\n 序号 \t影片名\t 评分 \t评价人数 \t 链接 ')
    for tag in soup.find_all('tr', class_='item'):
    #print tag
        m_order = int(tag.find('td', class_='m_order').get_text())
        m_name = tag.a.get_text()
        m_year = tag.span.get_text()
        m_rating_score = float(tag.em.get_text())
        m_rating_num = int(tag.find(headers="m_rating_num").get_text())
        m_url=str(tag.find('a')).split('"')[1]
        #print m_url

       print("%s %s %s %s %s %s " % (m_order, m_name, m_year, m_rating_score, m_rating_num,m_url)) 
if name == 'main':
crawl('http://movie.douban.com/top250?format=text')
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
ringa_lee

不是停止了,是没有更多的输出了。
为什么没有输出了?soup.find_all('tr', class_='item'):没有tr标签并且class是item的啊。

打开http://movie.douban.com/top250?format=text,好好看下sourcecode吧。

import urllib.request
import re
from bs4 import BeautifulSoup

def crawl(url):
    page = urllib.request.urlopen(url)
    contents = page.read()
    soup = BeautifulSoup(contents)
    print(u' 豆瓣电影TOP250:\n 序号 \t影片名\t 评分 \t评价人数 \t 链接 ')
    for tag in soup.find_all('p', class_='item'):
        m_order = int(tag.find('p', class_='pic').em.get_text())
        m_name = tag.find('span',class_='title').get_text()
        print(m_order,m_name)

if __name__ == '__main__':
    crawl('http://movie.douban.com/top250?format=text')
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号