我正在尝试使用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
答案 0 :(得分:0)
答案 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