鱼C论坛

 找回密码
 立即注册
查看: 2375|回复: 5

代码不报错,也不返回结果 不知道啥原因 逐步调试也找不到原因

[复制链接]
发表于 2016-11-4 10:37:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学习BeautifulSoup的时候,敲了一个小程序:
  1. from urllib import urlopen
  2. from BeautifulSoup import BeautifulSoup
  3. text=urlopen('http://python.org/community/jobs').read()
  4. soup=BeautifulSoup(text)
  5. jobs=set()
  6. for header in soup('h3'):
  7.     links=header('a','reference')
  8.     if not links:continue
  9.     link=links[0]
  10.     jobs.add('%s (%s)' % (link.string,link['href']))
  11. print '\n'.join(sorted(jobs,key=lambda s:s.lower()))
复制代码


执行完之后没有返回任何东西

但是也没有报错

逐步调试发现加断点也没用,貌似都没有执行到函数内部

实在不晓得为啥了。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-9 08:44:23 | 显示全部楼层
求解答。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-9 09:19:43 | 显示全部楼层
continue前面加个输出语句
只有一个h3标签,links=header('a','reference')后links为None,直接跳出去了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-9 10:25:01 | 显示全部楼层
ycgzs98789 发表于 2016-11-9 09:19
continue前面加个输出语句
只有一个h3标签,links=header('a','reference')后links为None,直接跳出去了


请教一下
我在for里面加了两个打印。然后看到header是有值的,那为啥links就是空的了呢?

  1. from urllib import urlopen
  2. from BeautifulSoup import BeautifulSoup
  3. text = urlopen('http://python.org/community/jobs').read()
  4. soup = BeautifulSoup(text)
  5. jobs = set()
  6. for header in soup('h3'):
  7.     print header
  8.     links = header('a', 'reference')
  9.     print links
  10.     if not links: continue
  11.     link = links[0]
  12.     jobs.add('%s (%s)' % (link.string, link['href']))
  13. print '\n'.join(sorted(jobs, key=lambda s: s.lower()))
复制代码
捕获.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-9 12:00:46 | 显示全部楼层
没看懂links = header('a', 'reference')是做什么的,bs4.element.Tag里面没有对应的方法,感觉你是想取到超链接的值吧,用header["a"]取,但是这个标签里没有a属性,所以会报错,可以用header["class"]看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-9 13:12:07 | 显示全部楼层
ycgzs98789 发表于 2016-11-9 12:00
没看懂links = header('a', 'reference')是做什么的,bs4.element.Tag里面没有对应的方法,感觉你是想取到 ...

好的
谢谢啦~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 04:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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