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
需要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: ',))直接退出运行了
是多进程引起的吗 超过48小时了,才到b,求帮助。 本帖最后由 Oeasy 于 2017-11-10 08:37 编辑
Husigh 发表于 2017-11-9 20:47
超过48小时了,才到b,求帮助。
国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。
可能网站服务器对于访问频率也做了一定限制。
做一个词典,从数据获取到排版,尤其是数据获取,耗上好几天、几週甚至几个月,那是再正常不过的事情,做过的都知道。两三年前有朋友抓过一回,当时并没有 bt4baidu 的开源脚本,前前后后弄了近一年时间。
当然,技术、资金实力雄厚的话,可能会节省海量的时间。比如租好多服务器,买好多**,可以很快搞定;土豪都不用自己动手,直接买数据甚至成品就行了嘛。不过一般人做不到,只有砸时间了。
加油噢,从你的帖子,也看到了你的进步。
我是无暇给予其他技术上的帮助,敲边鼓还是会的。{:4_105:}
Oeasy 发表于 2017-11-10 08:32
国外网站,国内通过不科学上网途径访问,速度慢甚至不能访问,这是很正常的。
可能网站服务器对于访问 ...
谢谢鼓励。时间还是可以耗得起的,就怕试用到期,封我的IP。 现在到e了,心力憔悴 eb机构账户是不是可以开多窗口?如何设置分块多窗口提取?请教各位,谢谢。 K
页:
[1]