账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    crawlspider登录后,无法在首页进行爬虫
    60
    0

    按照网上大神的例子,写了一个crawlspider的爬虫,但是运行到其中make_requests_from_url后,就直接结束了,最后的parse_page没有运行,问一下是啥原因啊。

    class w3spider(CrawlSpider):

    name = "w3"
    allowed_domains = ['xxx.com']
    start_urls = ["http://w3.xxx.com/next/indexa.html"]
    rules = (
        Rule(LinkExtractor(allow=("viewDoc.do\?did=\d.*&cata\=.*")), callback='parse_page', follow=True),
    )
    
    def start_requests(self):
        return [Request("https://login.xxx.com/login/", meta={"cookiejar": 1}, callback=self.post_login)]
    
    def post_login(self, response):
        formdate = {
            "actionFlag": "loginAuthenticate",
            "lang": "en",
            "loginMethod": "login",
            "loginPageType": "mix",
            "redirect": "http%3A%2F%2Fw3xxx.com%2Fnext%2Findexa.html",
            "redirect_local": "",
            "redirect_modify": "",
            "scanedFinPrint": "",
            "uid": "hwx371981",
            "password": "QWER1234%^&*",
            "verifyCode": "2345",
        }
        return [FormRequest.from_response(response,
                                          meta={'cookiejar': response.meta['cookiejar']},
                                          formdata=formdate,
                                          callback=self.after_login,
                                          dont_filter=True)]
    
    def after_login(self, response):
        print(response.text)
    
        for url in self.start_urls:
            print(url)
            yield self.make_requests_from_url(url)
            print(url)
    
    def parse_page(self, response):
        print(response.url)
    
    
    
    
    

    http://w3.huawei.com/next/ind...
    2017-11-23 09:31:07 [scrapy.extensions.logstats] INFO: Crawled 2 pages (at 2 pages/min), scraped 0 items (at 0 items/min)
    http://w3.huawei.com/next/ind...
    2017-11-23 09:31:14 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://w3.huawei.com/next/ind...; (referer: None)
    2017-11-23 09:31:14 [scrapy.core.engine] INFO: Closing spider (finished)

    可以看到2个print(url)都运行了,yield也运行了,但是最后的parse_page函数没有运行。

    另外不明白的是for url in self.start_urls,这句里的start_urls就是http://w3.xxx.com/next/indexa...,为什么要循环?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 如果你在登录后无法在首页进行爬虫,可能是由于以下几个原因:

      1. 服务器的问题:可能是服务器的问题,比如服务器宕机、服务器限速等。你可以尝试重启服务器或者稍后再试。

      2. 服务器的配置问题:可能是服务器的配置问题,比如服务器的访问限制、反爬虫策略等。你可以尝试调整服务器的配置,或者等待一段时间后再试。

      3. 浏览器的问题:可能是浏览器的问题,比如浏览器缓存、JavaScript阻止等。你可以尝试清理浏览器缓存、禁用JavaScript或者等待一段时间后再试。

      4. 网络的问题:可能是网络的问题,比如网络连接问题、网络拥堵等。你可以尝试重启路由器、清理网络等。

      5. 爬虫的问题:可能是爬虫的问题,比如爬虫配置问题、爬虫行为问题等。你可以尝试调整爬虫的配置、改变爬虫的行为等。

      以上都是一些常见的问题,你可以根据自己的情况进行尝试。如果问题依然存在,可能需要寻求专业的技术支持。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部