吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2307|回复: 4
收起左侧

[求助] python gevent monkey模块报错请教下!

[复制链接]
尔康大魔头 发表于 2019-8-11 14:45
再学习gevent 模块是报错:

[Python] 纯文本查看 复制代码
from gevent import monkey
#从gevent库里导入monkey模块。
monkey.patch_all()
#monkey.patch_all()能把程序变成协作式运行,就是可以帮助程序实现异步。
import gevent,time,requests
#导入gevent、time、requests。

start = time.time()
#记录程序开始时间。

url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8个网站封装成列表。

def crawler( ):
#定义一个crawler()函数。
    r = requests.get(url)
    #用requests.get()函数爬取网站。
    print(url,time.time()-start,r.status_code)
    #打印网址、请求运行时间、状态码。

tasks_list = [ ]
#创建空的任务列表。

for url in url_list:
#遍历url_list。
    task = gevent.spawn(crawler,url)
    #用gevent.spawn()函数创建任务。
    tasks_list.append(task)
    #往任务列表添加任务。
gevent.joinall(tasks_list)
#执行任务列表里的所有任务,就是让爬虫开始爬取网站。
end = time.time()
#记录程序结束时间。
print(end-start)
#打印程序最终所需时间。



运行后报错:
Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc4777ca48: crawler('https://www.baidu.com/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc4777cb48: crawler('https://www.sina.com.cn/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc4777cc48: crawler('http://www.sohu.com/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc4777cd48: crawler('https://www.qq.com/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc4777ce48: crawler('https://www.163.com/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc47839048: crawler('http://www.iqiyi.com/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc47839148: crawler('https://www.tmall.com/')> failed with TypeError

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
TypeError: crawler() takes 0 positional arguments but 1 was given
2019-08-11T06:40:00Z <Greenlet at 0x1cc47839248: crawler('http://www.ifeng.com/')> failed with TypeError

0.015010833740234375

已经安装了最新的greenlet库。求解……

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 尔康大魔头 发表于 2019-8-11 14:46
python版本是3.6.3 gevent是1.4的版本了!
mzbqhbc 发表于 2019-8-11 15:31
第22行 改为 def crawler( url):

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
q137100856 + 1 + 1 我很赞同!

查看全部评分

xian54966 发表于 2019-8-11 15:44
TypeError: crawler() takes 0 positional arguments but 1 was given
crawler函数应该有1个参数
bluerabbit 发表于 2019-8-11 16:09
task = gevent.spawn(crawler,url)  这样写的话,会把 url 传入 crawler 做为它的一个参数,但你的 crawler 定义时是不需要参数的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 02:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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