python scrapy代码没有给出任何输出

时间:2018-03-20 12:45:46

标签: python python-3.x web scrapy

我正在尝试使用python(scrapy)运行代码,但没有输出。 我也想登录网页,如果有任何错误,请告诉我

我正在使用的代码是:

class MySpider(Spider):
    def init(self, login, password):
        link = "http://freeerisa.benefitspro.com"
        self.login = login
        self.password = password
        self.cj = cookielib.CookieJar()
        self.opener = urllib2.build_opener(
            urllib2.HTTPRedirectHandler(),
            urllib2.HTTPHandler(debuglevel=0),
            urllib2.HTTPSHandler(debuglevel=0),
            urllib2.HTTPCookieProcessor(self.cj)
        )
        self.loginToFreeErissa()
        self.loginToFreeErissa()
    def loginToFreeErissa(self):
        login_data = urllib.urlencode({
            'MainContent_mainContent_txtEmail' : self.login,
            'MainContent_mainContent_txtPassword' : self.password,
         })
        response = self.opener.open(link + "/login.aspx", login_data)
        return ''.join(response.readlines())
    def after_login(self, response):
        if "Error while logging in" in response.body:
            self.logger.error("Login failed!")
        else:
            url = [link + "/5500/plandetails.aspx?Ein=042088633",
                link + "/5500/plandetails.aspx?Ein=046394579"]
            for u in url:
                g_data =soup.find_all("span")
                for item in g_data:
                    return item.text

我尝试调用该函数,这是我收到的错误:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "C:\ProgramData\Anaconda3\lib\site-packages\scrapy\spiders_init_.py",line 30, 
in init raise ValueError("%s must have a name" % type(self).__name__) 
ValueError: MySpider must have a name

3 个答案:

答案 0 :(得分:0)

没有输出,因为你没有打电话。

在其他世界中,您定义的是 MySpider ,但您没有使用它。

这可以帮助您a link

答案 1 :(得分:0)

错误消息不能更简洁:蜘蛛必须具有名称。您发布的代码中没有名称。这是 basic 在Scrapy中创建蜘蛛。此外,你的Python间距很糟糕,你需要一个带有Pylint的编辑器或者能告诉你PEP8的东西。

答案 2 :(得分:0)

将您的代码更改为

class MySpider(Spider):
    name = 'myspider'
    def init(self, login, password):
        link = "http://freeerisa.benefitspro.com"

并通过

运行你的蜘蛛
scrapy crawl myspider

for more information