QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码
查看: 127|回复: 2

[已解决]用pyspeder爬去网页信息时出错

[复制链接]
最佳答案
0 

尚未签到

发表于 2017-8-27 16:47:16 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

x
在使用pyspider爬去网页信息时会出现如下错误提示, 在网上查了一下,说是mongodb未开启,但网上说的都很笼统,不知如何开启mongodb,希望大神能帮忙指点下,小弟先行谢过

[E 170827 10:16:31 base_handler:203] localhost:27017: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
    Traceback (most recent call last):
      File "d:\download\anconda3\lib\site-packages\pyspider\libs\base_handler.py", line 201, in run_task
        self._run_func(self.on_result, result, response, task)
      File "d:\download\anconda3\lib\site-packages\pyspider\libs\base_handler.py", line 155, in _run_func
        ret = function(*arguments[:len(args) - 1])
      File "<tripadvisor>", line 43, in on_result
      File "<tripadvisor>", line 46, in save_to_mongo
      File "d:\download\anconda3\lib\site-packages\pymongo\collection.py", line 2467, in insert
        with self._socket_for_writes() as sock_info:
      File "d:\download\anconda3\lib\contextlib.py", line 82, in __enter__
        return next(self.gen)
      File "d:\download\anconda3\lib\site-packages\pymongo\mongo_client.py", line 823, in _get_socket
        server = self._get_topology().select_server(selector)
      File "d:\download\anconda3\lib\site-packages\pymongo\topology.py", line 214, in select_server
        address))
      File "d:\download\anconda3\lib\site-packages\pymongo\topology.py", line 189, in select_servers
        self._error_message(selector))
    pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [WinError 10061] 由于目标计算机积极拒绝,无法连接。


以下是代码部分,
from pyspider.libs.base_handler import *
import pymongo


class Handler(BaseHandler):
    crawl_config = {
    }
    client = pymongo.MongoClient('localhost')
    db = client['trip']

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('https://www.tripadvisor.cn/Attractions-g186338-Activities-c47-t163-London_England.html', callback=self.index_page)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc('.listing_title > a').items():
            self.crawl(each.attr.href, callback=self.detail_page)

    @config(priority=2)
    def detail_page(self, response):
        url = response.url
        name = response.doc('.heading_title').text()
        rating = response.doc('div > .more').text()
        address = response.doc('.address.colCnt2').text()
        phone = response.doc('.headerBL .phone > span').text()
        
        return {
            'url':url,
            'name':name,
            'rating':rating,
            'address':address,
            'phone':phone
            
              }
    def on_result(self, result):
        if result:
            self.save_to_mongo(result)
     
    def save_to_mongo(self, result):
        if self.db['London'].insert(result):
            print ('save to mongo', result)[/code]
最佳答案
2017-8-27 17:38:13
用下代理IP吧
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
275 
累计签到:258 天
连续签到:5 天
发表于 2017-8-27 17:38:01 | 显示全部楼层
你被网站认为是爬虫,网站拒绝了你
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
275 
累计签到:258 天
连续签到:5 天
发表于 2017-8-27 17:38:13 | 显示全部楼层    本楼为最佳答案   
用下代理IP吧
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!

发表回复

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

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /3 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-18 14:24

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