鱼C论坛

 找回密码
 立即注册
查看: 1395|回复: 12

[已解决]关于爬虫的一个问题

[复制链接]
发表于 2017-12-4 10:34:51 | 显示全部楼层 |阅读模式

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

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

x
按照网上的教程做了一个爬取大学排名的例子,代码如下:
import requests
import bs4

def open(url):
    try:
        r=requests.get(url)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return''


def get(ulist,html):
    soup=bs4.BeautifulSoup(html,'html.parser')
    for tr in soup.find('tbody').children:
        if isinstance(tr,bs4.element.Tag):
            tds=tr('td')
            ulist.append([tds[0].string,tds[1].string,tds[2].string])
            
            
def printnum(ulist,num):
    print('{:^10}\t{:^6}\t{:^10}'.format('排名','学校','分数'))
    for i in range(num):
        u=ulist[i]
        print('{:^10}\t{:^6}\t{:^10}'.format(u[0],u[1],u[2]))

def main():
    univer=[]
    url='http://www.zuihaodaxue.cn/shengyuanzhiliangpaiming2016.html'
    html=open(url)
    get(univer,html)
    printnum(univer,20)
main()   
报错为:

print('{:^10}\t{:^6}\t{:^10}'.format('排名','学校','分数'))

TypeError: print() missing 1 required positional argument: 'num',很困惑,希望能够得到大佬的解答。

最佳答案
2017-12-4 12:46:48
我猜没有贴全代码,可能不小心重写了print函数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-4 10:49:47 | 显示全部楼层
奇怪,我在IDLE上运行这一句并没有问题
  1. >>> print('{:^10}\t{:^6}\t{:^10}'.format('排名','学校','分数'))
  2.     排名              学校              分数   
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 10:56:28 | 显示全部楼层
main函数里面的univer。没有被赋值。在调用printnum的时候,ulist的长度为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 11:08:59 | 显示全部楼层
BngThea 发表于 2017-12-4 10:49
奇怪,我在IDLE上运行这一句并没有问题

课程上用的也是IDLE,我用的是Anaconda,用IDLE这段代码会报错么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 11:11:45 | 显示全部楼层
SylarPu 发表于 2017-12-4 10:56
main函数里面的univer。没有被赋值。在调用printnum的时候,ulist的长度为0

在get函数里添加了元素了呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 11:19:21 | 显示全部楼层
ustbclearwang 发表于 2017-12-4 11:11
在get函数里添加了元素了呀

你可以在主函数
print一下看看给了没
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 11:27:34 | 显示全部楼层
  1. D:\OFFICE\software\anaconda\python.exe D:/OFFICE/program/automation.git/test/wer.py
  2.     排名              学校              分数   
  3.     1              清华大学             北京   
  4.     2              北京大学             北京   
  5.     3             中国科学院大学            北京   
  6.     4             中国人民大学            北京   
  7.     5              南京大学             江苏   
  8.     6             上海交通大学            上海   
  9.     7              复旦大学             上海   
  10.     8             中国科学技术大学            安徽   
  11.     9              浙江大学             浙江   
  12.     10             南开大学             天津   
  13.     11            北京航空航天大学            北京   
  14.     12            中央财经大学            北京   
  15.     13             同济大学             上海   
  16.     14            上海财经大学            上海   
  17.     15            对外经济贸易大学            北京   
  18.     16             外交学院             北京   
  19.     17            北京师范大学            北京   
  20.     18            北京外国语大学            北京   
  21.     18             天津大学             天津   
  22.     20            西安交通大学            陕西   

  23. Process finished with exit code 0
复制代码

Sorry 我刚测了一下,可以运行的。
我没注意到列表传入函数,列表本身会在函数内改变
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 11:38:57 From FishC Mobile | 显示全部楼层
你这个是北京理工老师那个教程吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 11:57:37 | 显示全部楼层
lh625243422 发表于 2017-12-4 11:38
你这个是北京理工老师那个教程吧

是是是的,好疑惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 11:58:30 | 显示全部楼层
SylarPu 发表于 2017-12-4 11:27
Sorry 我刚测了一下,可以运行的。
我没注意到列表传入函数,列表本身会在函数内改变

我也不知道我的为啥不可以,就是报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-4 12:46:48 | 显示全部楼层    本楼为最佳答案   
我猜没有贴全代码,可能不小心重写了print函数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 14:18:47 | 显示全部楼层
wei_Y 发表于 2017-12-4 12:46
我猜没有贴全代码,可能不小心重写了print函数?

真的,惨了,重写了print了,难过,怎么恢复之前的呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-4 14:37:17 | 显示全部楼层
重启一次Anaconda发现好了,就是重写了print
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 22:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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