查看: 857|回复: 7
打印 上一主题 下一主题

[求助] python获取WMU的问题

[复制链接]
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    10

    主题

    89

    回帖

    1807

    积分

    解元

    Rank: 5Rank: 5

    积分
    1807

    灌水大神章

    跳转到指定楼层
    1
    发表于 2017-11-8 22:10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 Husigh 于 2017-11-16 11:05 编辑

    b大脚本名为******.py。eb的账号已经找到了,现在是速度特别慢,老是报错。错误信息如下。py是2.7.14版

    eb机构账户是不是可以开多窗口?如何设置分块多窗口提取?请教各位,谢谢。

    -Traceback (most recent call last):
      File "D:\M\******.py", line 244, in __fetchdata_and_make_mdx
        page = self.postdata(start, pos)
      File "D:\M\******.py", line 526, in postdata
        r = self.__session.post(self.__base_url, data=param, timeout=100)
      File "C:\Python27\lib\requests\sessions.py", line 555, in post
        return self.request('POST', url, data=data, json=json, **kwargs)
      File "C:\Python27\lib\requests\sessions.py", line 508, in request
        resp = self.send(prep, **send_kwargs)
      File "C:\Python27\lib\requests\sessions.py", line 658, in send
        r.content
      File "C:\Python27\lib\requests\models.py", line 823, in content
        self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
      File "C:\Python27\lib\requests\models.py", line 752, in generate
        raise ConnectionError(e)

    ConnectionError: HTTPConnectionPool(host='**.***.com', port=80): Read timed out.
    None

    '180: 9' failed, retry automatically later
    - Traceback (most recent call last):
      File "D:\M\******.py", line 247, in __fetchdata_and_make_mdx
        word = self.makeword(page, words, pic)
      File "D:\M\******.py", line 595, in makeword
        worddef = p.sub(lambda m: self.__chgimg(m, pic), worddef)
    File "D:\M\******.py", line 595, in <lambda>
        worddef = p.sub(lambda m: self.__chgimg(m, pic), worddef)
      File "D:\M\******.py", line 572, in __chgimg
        div = p.sub(lambda n: self.__repimg(m.group(1), n.group(1), self.__origin), div)
      File "D:\M\******.py", line 572, in <lambda>
        div = p.sub(lambda n: self.__repimg(m.group(1), n.group(1), self.__origin), div)
      File "D:\M\******.py", line 547, in __repimg
        dump(self.getpage(''.join([rpath, fnm]), base_url), file, 'wb')
      File "D:\M\******.py", line 522, in getpage
        return getpage(self.__session, link, base_url)
      File "D:\M\******.py", line 73, in getpage
        r = session.get(url, timeout=10, allow_redirects=False)
      File "C:\Python27\lib\requests\sessions.py", line 521, in get
        return self.request('GET', url, **kwargs)
      File "C:\Python27\lib\requests\sessions.py", line 508, in request
        resp = self.send(prep, **send_kwargs)

      File "C:\Python27\lib\requests\sessions.py", line 658, in send
        r.content
      File "C:\Python27\lib\requests\models.py", line 823, in content
        self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes()
      File "C:\Python27\lib\requests\models.py", line 752, in generate
        raise ConnectionError(e)



    ConnectionError: HTTPConnectionPool(host='**.***', port=80): Max retries exceeded
    with url: /baidu/%2A (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000000000386BE80>: Failed to establish a new connection: [Errno 10060] ',))


    File "C:\Python27\lib\requests\adapters.py", line 508, in send
        raise ConnectionError(e, request=request)



    有找过解决办法不知从何下手

    例:http连接太多没有关闭导致的

    1、增加重试连接次数
    requests.adapters.DEFAULT_RETRIES = 5

    2、关闭多余的连接
    requests使用了urllib3库,默认的http connection是keep-alive的,requests设置False关闭。

    操作方法
    s = requests.session()
      s.keep_alive = False


  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    10

    主题

    89

    回帖

    1807

    积分

    解元

    Rank: 5Rank: 5

    积分
    1807

    灌水大神章

    2
     楼主| 发表于 2017-11-9 12:31:57 | 只看该作者
    需要user和password的网页,是不是不能用多进程抓取啊?

    出现如下显示:requests.exceptions.ConnectionError:HTTPConectionPool(host='**' , port=80) Max retries exceeded with url:*****(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000000000442F208>)Failed to establish a new connection: [Errno  10060]',))直接退出运行
    是多进程引起的吗
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    10

    主题

    89

    回帖

    1807

    积分

    解元

    Rank: 5Rank: 5

    积分
    1807

    灌水大神章

    3
     楼主| 发表于 2017-11-9 20:47:47 | 只看该作者
    超过48小时了,才到b,求帮助。

    该用户从未签到

    2121

    主题

    2961

    回帖

    6万

    积分

    翰林院修撰

    不忘初心。送分大人,灌水砖家。擅长抛砖引玉,挖坑不填。

    Rank: 12Rank: 12Rank: 12

    积分
    61056

    翰林院专用章灌水大神章笑傲江湖章小蜜蜂章管理组专用章

    4
    发表于 2017-11-10 08:32:47 | 只看该作者
    本帖最后由 Oeasy 于 2017-11-10 08:37 编辑
    Husigh 发表于 2017-11-9 20:47
    超过48小时了,才到b,求帮助。



    国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。

    可能网站服务器对于访问频率也做了一定限制。

    做一个词典,从数据获取到排版,尤其是数据获取,耗上好几天、几週甚至几个月,那是再正常不过的事情,做过的都知道。两三年前有朋友抓过一回,当时并没有 bt4baidu 的开源脚本,前前后后弄了近一年时间。

    当然,技术、资金实力雄厚的话,可能会节省海量的时间。比如租好多服务器,买好多**,可以很快搞定;土豪都不用自己动手,直接买数据甚至成品就行了嘛。不过一般人做不到,只有砸时间了。

    加油噢,从你的帖子,也看到了你的进步。

    我是无暇给予其他技术上的帮助,敲边鼓还是会的。


  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    10

    主题

    89

    回帖

    1807

    积分

    解元

    Rank: 5Rank: 5

    积分
    1807

    灌水大神章

    5
     楼主| 发表于 2017-11-10 12:28:21 | 只看该作者
    Oeasy 发表于 2017-11-10 08:32
    国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。

    可能网站服务器对于访问 ...

    谢谢鼓励。时间还是可以耗得起的,就怕试用到期,封我的IP。
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    10

    主题

    89

    回帖

    1807

    积分

    解元

    Rank: 5Rank: 5

    积分
    1807

    灌水大神章

    6
     楼主| 发表于 2017-11-14 12:35:28 | 只看该作者
    现在到e了,心力憔悴
  • TA的每日心情
    开心
    2020-12-29 09:50
  • 签到天数: 165 天

    [LV.7]常住居民III

    10

    主题

    89

    回帖

    1807

    积分

    解元

    Rank: 5Rank: 5

    积分
    1807

    灌水大神章

    7
     楼主| 发表于 2017-11-16 12:28:47 | 只看该作者
    eb机构账户是不是可以开多窗口?如何设置分块多窗口提取?请教各位,谢谢。