Husigh 发表于 2017-11-8 22:10:17

python获取WMU的问题

本帖最后由 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(), 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: ',))

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


Husigh 发表于 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: ',))直接退出运行了
是多进程引起的吗

Husigh 发表于 2017-11-9 20:47:47

超过48小时了,才到b,求帮助。

Oeasy 发表于 2017-11-10 08:32:47

本帖最后由 Oeasy 于 2017-11-10 08:37 编辑

Husigh 发表于 2017-11-9 20:47
超过48小时了,才到b,求帮助。


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

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

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

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

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

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


Husigh 发表于 2017-11-10 12:28:21

Oeasy 发表于 2017-11-10 08:32
国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。

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

谢谢鼓励。时间还是可以耗得起的,就怕试用到期,封我的IP。

Husigh 发表于 2017-11-14 12:35:28

现在到e了,心力憔悴

Husigh 发表于 2017-11-16 12:28:47

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

Husigh 发表于 2017-11-19 19:00:22

K
页: [1]
查看完整版本: python获取WMU的问题