sys.setdefaultencoding is evil

185 views
Skip to first unread message

Wen Adam

unread,
Apr 2, 2013, 7:38:05 AM4/2/13
to pyth...@googlegroups.com
自己写那种即用即丢的不被依赖的脚本的时候还感觉不出sys.setdefaultencoding的坏处
但是如果要写包含依赖关系的sys.setdefaultencoding这样dirty hack就不管用了。。。
今天看到的一篇文章 sys.setdefaultencoding is evil
+----------------------------------------------------
| Xiaobin Wen (Adam)
| Department of 
Network Engineering
| College of Information Engineering
| Qingdao University
| OSQDU Member
| www.darkof.com
+----------------------------------------------------

YS.Zou

unread,
Apr 2, 2013, 7:44:38 AM4/2/13
to pyth...@googlegroups.com

On 04-02 19:38, Wen Adam wrote:

 自己写那种即用即丢的不被依赖的脚本的时候还感觉不出sys.setdefaultencoding的坏处
 但是如果要写包含依赖关系的sys.setdefaultencoding这样dirty hack就不管用了。。。
 今天看到的一篇文章 sys.setdefaultencoding is
 evil<http://ziade.org/2008/01/08/syssetdefaultencoding-is-evil/>

我一直对此很不理解, 我真的好像从没有碰到过编码问题唉.

(源文件都是 utf8 , 程序处理时都尽量用 unicode , 预感会有麻烦的地方都不用中文).

--
进出自由才是游戏者的生存之道。

http://zouyesheng.com

JunLe Li

unread,
Apr 2, 2013, 7:48:16 AM4/2/13
to pyth...@googlegroups.com
py3不是把那2个东西合并了么?str和unicode。

2013/4/2 Wen Adam <adamw...@gmail.com>:
> --
> --
> 邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
> 规则: http://code.google.com/p/cpyug/wiki/PythonCn
> 发言: pyth...@googlegroups.com
> 退订: python-cn+...@googlegroups.com (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/CpyUg
> G+: https://plus.google.com/u/0/communities/108786798869709602787
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> ---
> 您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
> 要查看更多选项,请访问 https://groups.google.com/groups/opt_out
>
>

Wen Adam

unread,
Apr 2, 2013, 7:52:09 AM4/2/13
to pyth...@googlegroups.com
py3是合并了  但是据我了解还是有很多人在2.x

+----------------------------------------------------
| Xiaobin Wen (Adam)
| Department of 
Network Engineering
| College of Information Engineering
| Qingdao University
| OSQDU Member
| www.darkof.com
+----------------------------------------------------


2013/4/2 JunLe Li <lij...@gmail.com>

limodou

unread,
Apr 2, 2013, 8:04:38 AM4/2/13
to Python.cn@google
我从来不用这种技巧。


2013/4/2 Wen Adam <adamw...@gmail.com>

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: https://github.com/limodou/uliweb
My Blog: http://my.oschina.net/limodou

依云

unread,
Apr 2, 2013, 8:36:14 AM4/2/13
to pyth...@googlegroups.com
On Tue, Apr 02, 2013 at 07:48:16PM +0800, JunLe Li wrote:
> py3不是把那2个东西合并了么?str和unicode。

那个不叫合并。

str in py2 -> bytes in py3
unicode in py2 -> str in py3

然后,它们之间的自动转换取消了。

--
Best regards,
lilydjwg

Linux Vim Python 我的博客:
http://lilydjwg.is-programmer.com/
--
A: Because it obfuscates the reading.
Q: Why is top posting so bad?

JunLe Li

unread,
Apr 2, 2013, 9:03:38 AM4/2/13
to pyth...@googlegroups.com
2013/4/2 依云 <lily...@gmail.com>:
> On Tue, Apr 02, 2013 at 07:48:16PM +0800, JunLe Li wrote:
>> py3不是把那2个东西合并了么?str和unicode。
>
> 那个不叫合并。
>
> str in py2 -> bytes in py3
> unicode in py2 -> str in py3

原来是这样子。

>
> 然后,它们之间的自动转换取消了。

自动转换,有好处,也有坏处。
不过最大的问题在于,py 在编码出现问题的时候,总觉得给出的信息不够。

>
> --
> Best regards,
> lilydjwg
>
> Linux Vim Python 我的博客:
> http://lilydjwg.is-programmer.com/
> --
> A: Because it obfuscates the reading.
> Q: Why is top posting so bad?
>

Goldfish Huang

unread,
Apr 2, 2013, 9:58:58 AM4/2/13
to pyth...@googlegroups.com
其实只要减少输出stdout的机会,在整个系统中明确传递unicode,一般就不会碰到setdefaultencoding()的问题了。我比较喜欢的做法是:

sys.setdefaultencoding(locale.getpreferredencoding())


--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
免服务器办公室聊天软件、笔记本、日记本:http://besteam.im/
Python及Qt相关Blog:http://hgoldfish.com/

Shiyao Ma

unread,
Apr 2, 2013, 10:17:36 AM4/2/13
to pyth...@googlegroups.com
我之前有在列表里问过类似的问题,但是没有让我满意的回答。
在py2中,str用的是sys.getdefaultenconding(),这个可能是gbk这种变长编码,只是碰巧ascii内的字母编码一样。str in py 2->bytes in py3不大合适吧。

在py3中,str用unicode表示。这个我不是很懂,str中每个字母存的都是相应的unicode code point吗?具体序列化的时候才考虑utf8之类的编码?

“{} hi".format(b"hello")这个字符串当中内嵌了byte string,py3的内部实现又是怎样的呢?
也许我该看看py3的源码,有什么好的指教吗?感觉没有地方教3的源码实现。

2013/4/2 依云 <lily...@gmail.com>
--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out





--
My gpg pubring is available via: gpg --keyserver subkeys.pgp.net --recv-keys 307CF736

More on: http://about.me/introom

依云

unread,
Apr 2, 2013, 12:42:11 PM4/2/13
to pyth...@googlegroups.com
On Tue, Apr 02, 2013 at 10:17:36PM +0800, Shiyao Ma wrote:
> 我之前有在列表里问过类似的问题,但是没有让我满意的回答。
> 在py2中,str用的是sys.getdefaultenconding(),这个可能是gbk这种变长编码,只是碰巧ascii内的字母编码一样。str
> in py 2->bytes in py3不大合适吧。

准确地说,是 Python 2 中的 str 对象相当于 Python 3 中的 bytes,但是用途
却相当于 str。

> 在py3中,str用unicode表示。这个我不是很懂,str中每个字母存的都是相应的unicode code
> point吗?具体序列化的时候才考虑utf8之类的编码?

是每个「字符」。是的,就是一个字符对应一个码点,所以你对一个 str 对象求
长度能得到它的字符数(而非字节数)。序列化时会使用指定或者预设的编码进行
编码。

> “{} hi".format(b"hello")这个字符串当中内嵌了byte string,py3的内部实现又是怎样的呢?
> 也许我该看看py3的源码,有什么好的指教吗?感觉没有地方教3的源码实现。

"{} hi".format(b"hello") 相当于 "%s hi" % b"hello",也就是把 b"hello" 的
字符串表示(而非它自身)放进去。你也可以试试 "{} hi".format([]) 或者
"{} hi".format(os)。

你现在仔细读 Python 3 官方教程和文档吧。

Eric Xing

unread,
Apr 2, 2013, 11:20:55 PM4/2/13
to python-cn
我在装mint的时候把语言设置成英语了,sys.getdefaultencoding()得到的是ascii。最近写文件的时候就总报错,用了sys.setdefaultencoding('utf-8')才解决。如果不用sys.setdefaultencoding(),该用什么方法解决?


2013/4/2 YS.Zou <yeshe...@gmail.com>

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
Eric Xing

YS.Zou

unread,
Apr 2, 2013, 11:46:44 PM4/2/13
to pyth...@googlegroups.com

我现在使用 sys.getdefaultencoding() 得到的结果也是 ascii .

每个 .py 开头, 我都会加上:

  # -*- coding: utf-8 -*-

On 04-03 11:20, Eric Xing wrote:

 我在装mint的时候把语言设置成英语了,sys.getdefaultencoding()得到的是ascii。最近写文件的时候就总报错,用了sys.setdefaultencoding('utf-8')才解决。如果不用sys.setdefaultencoding(),该用什么方法解决?
 
 2013/4/2 YS.Zou <<yeshengzou (a) gmail com>>
 On 04-02 19:38, Wen Adam wrote:
 
 自己写那种即用即丢的不被依赖的脚本的时候还感觉不出sys.setdefaultencoding的坏处
 但是如果要写包含依赖关系的sys.setdefaultencoding这样dirty hack就不管用了。。。
 今天看到的一篇文章 sys.setdefaultencoding is
 evil<http://ziade.org/2008/01/08/syssetdefaultencoding-is-evil/>
我一直对此很不理解, 我真的好像从没有碰到过编码问题唉. (源文件都是 utf8 , 程序处理时都尽量用 unicode , 预感会有麻烦的地方都不用中文).

--
进出自由才是游戏者的生存之道。

http://zouyesheng.com

Eric Xing

unread,
Apr 3, 2013, 1:02:12 AM4/3/13
to python-cn
加了,还是会报错


2013/4/3 YS.Zou <yeshe...@gmail.com>

--
进出自由才是游戏者的生存之道。

http://zouyesheng.com

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
Eric Xing

JunLe Li

unread,
Apr 3, 2013, 2:04:17 AM4/3/13
to pyth...@googlegroups.com
2013/4/3 Eric Xing <ericy...@gmail.com>:
> 我在装mint的时候把语言设置成英语了,sys.getdefaultencoding()得到的是ascii。最近写文件的时候就总报错,用了sys.setdefaultencoding('utf-8')才解决。如果不用sys.setdefaultencoding(),该用什么方法解决?

系统的LOCALE环境变量的定义问题吧?

Flya Flyaa

unread,
Apr 3, 2013, 2:16:03 AM4/3/13
to pyth...@googlegroups.com
为什么要用这个函数?
内部处理用unicode,存储用utf8,一切OK。


2013/4/3 JunLe Li <lij...@gmail.com>

JunLe Li

unread,
Apr 3, 2013, 5:50:42 AM4/3/13
to pyth...@googlegroups.com
在windows下面py3
>>> f = open("file.txt", "w+")
这条语句新建文件的时候,使用的不是utf-8编码,若需要utf-8打开,需要encoding='utf-8'

这算一个麻烦的事情吧?

2013/4/3 Flya Flyaa <flya...@gmail.com>:

GooglePY

unread,
Apr 8, 2013, 2:36:02 AM4/8/13
to pyth...@googlegroups.com
如题, 求指路!

flyer

unread,
Apr 8, 2013, 3:01:42 AM4/8/13
to python-cn
用 pyquery 手动执行 js,或者考虑通过 headless-browser 自动解析网页中的 js


2013/4/8 GooglePY <zhounet...@gmail.com>
如题, 求指路!


--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out





--
宠辱不惊,闲看庭前花开花落;去留无意,漫随天边云卷云舒。

kenneth

unread,
Apr 8, 2013, 3:13:11 AM4/8/13
to pyth...@googlegroups.com

GooglePY

unread,
Apr 8, 2013, 4:56:53 AM4/8/13
to pyth...@googlegroups.com, python-cn
能给点资料链接看看不,这个
headless-browser 之前没用过,搜了下也没搜到什么??


发自我的 iPhone

flyer

unread,
Apr 8, 2013, 5:09:33 AM4/8/13
to python-cn
看你的需求。

如果你只是想通过 python 解析 js,使用 pyquery,看官方文档。

如果是想自动解析页面中的 js,通过 'headless-browser',这只是一个概念,即通过在内存中运行浏览器或浏览器内核、不在 X 环境中展现这个浏览器,来使用常见的浏览器的功能。考虑通过 phantomjs、qtwebkit、selenium 实现。
qtwebkit 相关的资料在之前邮件列表之前的邮件发过,请搜下。
phantomjs 和 selenium 看官方文档即可。


2013/4/8 GooglePY <zhounet...@gmail.com>

依云

unread,
Apr 8, 2013, 10:00:02 AM4/8/13
to pyth...@googlegroups.com
On Wed, Apr 03, 2013 at 05:50:42PM +0800, JunLe Li wrote:
> 在windows下面py3
> >>> f = open("file.txt", "w+")
> 这条语句新建文件的时候,使用的不是utf-8编码,若需要utf-8打开,需要encoding='utf-8'
>
> 这算一个麻烦的事情吧?

算是一个正常的需求。不管怎么说反正比 Java 简单多了不是?

MadFrog

unread,
Apr 18, 2013, 4:45:22 AM4/18/13
to pyth...@googlegroups.com
selenium  实现过。。。但是感觉奇慢无比。。
我应用的场景是爬虫爬东西,但是结果是经过js ajax 获得的内容。。。
那如果是这样,。。还不如分析一下js.. 直接去取JS的结果


2013/4/8 flyer <flye...@gmail.com>

Bang Zhou

unread,
Apr 18, 2013, 5:00:15 AM4/18/13
to pyth...@googlegroups.com
多谢各位, 我后来的解决办法居然来是 requests ,  此物有奇效啊

kaifeng jin

unread,
Apr 18, 2013, 5:07:31 AM4/18/13
to pyth...@googlegroups.com

我看见问题第一反应就是用requests不就直接得到js运行后的html了么。太年轻,以为你们谈论的问题很高深,没敢回答。。。


Sent from Mailbox for iPhone

Bang Zhou

unread,
Apr 18, 2013, 5:38:40 AM4/18/13
to pyth...@googlegroups.com
....... 是我不认识 requests 这一神器, 一般都用urllib,urllib2

张仁宁

unread,
Apr 18, 2013, 7:07:50 AM4/18/13
to pyth...@googlegroups.com
我也是第一次听说requests,以前都用phantomjs解析js。刚看了下requests文档,没找到怎么得到js执行后的结果,我试了下requests.get(url),得到的是网页源码。
请问,怎么才能得到解析js后的dom呢?thank you very much。

李瑾

unread,
Apr 18, 2013, 10:46:19 AM4/18/13
to pyth...@googlegroups.com
我也是用的phantomjs ,第一次听说requests

Siva

unread,
Apr 18, 2013, 10:07:00 PM4/18/13
to pyth...@googlegroups.com
requestsֻ�Ƿ�װ��һЩ������صIJ�������û���ṩjs�Ľ�������������Ҫ ���js�����Ľ�����Ľ����Ҫʹ��selenium ����phantomjs��
selenium �����û�ù��˵����Ҫ�����֧�ֵġ�phantomjs������һ��headless��browser����ͼ�ν��������������û�� ��Ӧ���ǻ���webkit�ġ�

ʹ��phantomjs����js��ʱ�򣬻���һЩ��Ҫע��ľ���ʹ����require.js�����js�첽���ص���ҳ���㲻��ֱ���� onload֮���ȡdom����Ҫ�ȴ�js��Ⱦ�����ȡԪ�ء�
��������insert js�ķ�ʽ���������һĿ�ꡣ

On 04/18/2013 10:46 PM, ��� wrote:
��Ҳ���õ�phantomjs �� ��һ����˵requests


�� 2013��4��18������7:07�������� <ren...@staff.xianguo.com>д ����
��Ҳ�ǵ�һ����˵requests����ǰ����phantomjs����js���տ����� requests�ĵ���û�ҵ���ô�õ�jsִ�к�Ľ����������requests.get(url),�õ�������ҳԴ�롣
���ʣ���ô���ܵõ�����js���dom�أ�thank you very much��


�� 2013��4��18������5:38��Bang Zhou <zhounet...@gmail.com>д ����

....... ���Ҳ���ʶ requests ��һ����, һ�㶼��urllib,urllib2


�� 2013��4��18������5:07��kaifeng jin <jkf...@gmail.com>д ����

�ҿ��������һ��Ӧ������requests����ֱ�ӵõ�js���к��html�� ô��̫���ᣬ��Ϊ����̸�۵�����ܸ��û�һش𡣡���

��

Sent from Mailbox for iPhone

On Thu, Apr 18, 2013 at 5:00 PM, Bang Zhou <zhounet...@gmail.com> wrote:

��л��λ, �Һ����Ľ���취��Ȼ���� requests ,  ��������Ч��


�� 2013��4��18������4:45��MadFrog <bitr...@gmail.com>д ����
selenium  ʵ�ֹ�����Ǹо������ޱȡ���
�� Ӧ�õij��������������������ǽ���Ǿ��� js ajax ��õ����ݡ�����
�� ��������������������һ�� js.. ֱ��ȥȡJS�Ľ��


2013/4/8 flyer <flye...@gmail.com>
�� �������

�����ֻ����ͨ�� python ���� js��ʹ�� pyquery�����ٷ��ĵ���

��������Զ�����ҳ ���е� js��ͨ�� 'headless-browser'����ֻ��һ�������ͨ�����ڴ��������������������ںˡ����� X ������չ��������������ʹ�ó����������Ĺ��ܡ�����ͨ�� phantomjs�� qtwebkit�� selenium ʵ�֡�
qtwebkit ��ص�������֮ǰ�ʼ��б�֮ǰ ���ʼ����������¡�
phantomjs �� selenium ���ٷ��ĵ����ɡ�


2013/4/8 GooglePY <zhounet...@gmail.com>
�ܸ���������ӿ��� �������
headless-browser ֮ǰû�ù�������Ҳû�ѵ�ʲ ô����


�����ҵ� iPhone

�� 2013-4-8��15:01��flyer <flye...@gmail.com> ���

�� pyquery �ֶ�ִ�� js�����߿���ͨ�� headless-browser �Զ�������ҳ�е� js


2013/4/8 GooglePY <zhounet...@gmail.com>
���⣬ ��ָ·��

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��





--
���費�����п�ͥǰ�������䣻 ȥ�����⣬��������ƾ����档

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��
 
 
--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��
 
 



--
���費�����п�ͥǰ�������䣻 ȥ�����⣬��������ƾ����档

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢 �͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups /opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)
����: http://code.google.com/p/cpyug/wiki/CpyUg
G+: https://plus.google.com/u/0/communities/108786798869709602787
����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

张仁宁

unread,
Apr 18, 2013, 10:13:02 PM4/18/13
to pyth...@googlegroups.com
我现在是这么做的。等待js加载完毕是个在时间上很不确定的过程,不知道有什么好办法可以减少加载时间。但是楼上几位说的用requests可以直接获得js执行后的html,不知道用没用这些工具。按说没有一个浏览器引擎,是没法渲染的吧


在 2013年4月19日上午10:07,Siva <siva...@gmail.com>写道:
requests只是封装了一些网络相关的操作。并没有提供js的解析环境。你想要 获得js解析的解析后的结果。需要使用selenium 或者phantomjs,
selenium 这个我没用过,据说是需要浏览器支持的。phantomjs是做了一个headless的browser。无图形界面的浏览器。如果没记 错应该是基于webkit的。

使用phantomjs解析js的时候,还有一些需要注意的就是使用了require.js这类的js异步加载的网页。你不能直接在 onload之后就取dom,需要等待js渲染完毕再取元素。
可以利用insert js的方式,来完成这一目标。

On 04/18/2013 10:46 PM, 李瑾 wrote:
我也是用的phantomjs , 第一次听说requests


在 2013年4月18日下午7:07,张仁宁 <ren...@staff.xianguo.com>写 道:
我也是第一次听说requests,以前都用phantomjs解析js。刚看了下 requests文档,没找到怎么得到js执行后的结果,我试了下requests.get(url),得到的是网页源码。
请问,怎么才能得到解析js后的dom呢?thank you very much。
在 2013年4月18日下午5:38,Bang Zhou <zhounet...@gmail.com>写 道:
....... 是我不认识 requests 这一神器, 一般都用urllib,urllib2
在 2013年4月18日下午5:07,kaifeng jin <jkf...@gmail.com>写 道:

我看见问题第一反应就是用requests不就直接得到js运行后的html了 么。太年轻,以为你们谈论的问题很高深,没敢回答。。。


Sent from Mailbox for iPhone

On Thu, Apr 18, 2013 at 5:00 PM, Bang Zhou <zhounet...@gmail.com> wrote:

多谢各位, 我后来的解决办法居然来是 requests ,  此物有奇效啊
在 2013年4月18日下午4:45,MadFrog <bitr...@gmail.com>写 道:
selenium  实现过。。。但是感觉奇慢无比。。
我 应用的场景是爬虫爬东西,但是结果是经过 js ajax 获得的内容。。。
那 如果是这样,。。还不如分析一下 js.. 直接去取JS的结果


2013/4/8 flyer <flye...@gmail.com>
看 你的需求。

如果你只是想通过 python 解析 js,使用 pyquery,看官方文档。

如果是想自动解析页 面中的 js,通过 'headless-browser',这只是一个概念,即通过在内存中运行浏览器或浏览器内核、不在 X 环境中展现这个浏览器,来使用常见的浏览器的功能。考虑通过 phantomjs、 qtwebkit、 selenium 实现。
qtwebkit 相关的资料在之前邮件列表之前 的邮件发过,请搜下。
phantomjs 和 selenium 看官方文档即可。


2013/4/8 GooglePY <zhounet...@gmail.com>
能给点资料链接看看 不,这个
headless-browser 之前没用过,搜了下也没搜到什 么??


发自我的 iPhone

在 2013-4-8,15:01,flyer <flye...@gmail.com> 写道:

用 pyquery 手动执行 js,或者考虑通过 headless-browser 自动解析网页中的 js


2013/4/8 GooglePY <zhounet...@gmail.com>
如题, 求指路!

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out





--
宠辱不惊,闲看庭前花开花落; 去留无意,漫随天边云卷云舒。

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 
--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
宠辱不惊,闲看庭前花开花落; 去留无意,漫随天边云卷云舒。

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发 送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups /opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

Siva

unread,
Apr 18, 2013, 11:15:16 PM4/18/13
to pyth...@googlegroups.com
Solution is to either add an arbitrary `setTimeout` to your PhantomJS render (e.g. 5 seconds) or else poll the page (i.e. using `page.evaluate`) for some indicator HTML element or JS variable that would signify that all RequireJS loading has completed.

��������phtantomjs�ʼ��б����ʻ�õ�һ���ظ���poll�����ʺ��㡣

On 04/19/2013 10:13 AM, ������ wrote:
����������ô���ġ��ȴ�js��������Ǹ���ʱ���Ϻܲ�ȷ���Ĺ�̣���֪����ʲô�ð취���Լ��ټ���ʱ�䡣���� ¥�ϼ�λ˵����requests����ֱ�ӻ��jsִ�к��html����֪����û����Щ���ߡ���˵û��һ����������棬��û����Ⱦ�İ�


�� 2013��4��19������10:07��Siva <siva...@gmail.com>д ����
requestsֻ�Ƿ�װ��һЩ������صIJ�������û���ṩjs�Ľ�������������Ҫ ���js�����Ľ�����Ľ����Ҫʹ��selenium ����phantomjs��
selenium �����û�ù��˵����Ҫ�����֧�ֵġ�phantomjs������һ��headless��browser����ͼ�ν� �������������û�� ��Ӧ���ǻ���webkit�ġ�

ʹ��phantomjs����js��ʱ�򣬻���һЩ��Ҫע��ľ���ʹ����require.js�����js�첽���ص��� ҳ���㲻��ֱ���� onload֮���ȡdom����Ҫ�ȴ�js��Ⱦ�����ȡԪ�ء�
��������insert js�ķ�ʽ���������һĿ�ꡣ

On 04/18/2013 10:46 PM, ��� wrote:
��Ҳ���õ�phantomjs �� ��һ����˵requests
�� 2013��4��18������7:07�������� <ren...@staff.xianguo.com>д ����
��Ҳ�ǵ�һ����˵requests����ǰ����phantomjs����js�� �տ����� requests�ĵ���û�ҵ���ô�õ�jsִ�к�Ľ����������requests.get(url),�õ�������ҳԴ�롣
���ʣ���ô���ܵõ�����js���dom�أ�thank you very much��
�� 2013��4��18������5:38��Bang Zhou <zhounet...@gmail.com>д ����
....... ���Ҳ���ʶ requests ��һ����, һ�㶼��urllib,urllib2
�� 2013��4��18������5:07��kaifeng jin <jkf...@gmail.com>д ����

�ҿ��������һ��Ӧ������requests����ֱ�ӵõ� js���к��html�� ô��̫���ᣬ��Ϊ����̸�۵�����ܸ��û�һش𡣡���

��

Sent from Mailbox for iPhone

On Thu, Apr 18, 2013 at 5:00 PM, Bang Zhou <zhounet...@gmail.com> wrote:

��л��λ, �Һ����Ľ���취��Ȼ���� requests ,  ��������Ч��
�� 2013��4��18������ 4:45��MadFrog <bitr...@gmail.com>д ����
selenium  ʵ�ֹ�����Ǹо������� �ȡ���
�� Ӧ�õij��������������������� ����Ǿ��� js ajax ��õ����ݡ�����
�� ��������������������һ �� js.. ֱ��ȥȡJS�Ľ��


2013/4/8 flyer <flye...@gmail.com>
�� �������

�����ֻ����ͨ�� python ���� js��ʹ�� pyquery�����ٷ��ĵ���

��������Զ�����ҳ ���е� js��ͨ�� 'headless-browser'����ֻ��һ�������ͨ�����ڴ��������������������ںˡ����� X ������չ��������������ʹ�ó����������Ĺ��ܡ�����ͨ�� phantomjs�� qtwebkit�� selenium ʵ�֡�
qtwebkit ��ص�������֮ǰ�ʼ��б�֮ǰ ���ʼ����������¡�
phantomjs �� selenium ���ٷ��ĵ����ɡ�


2013/4/8 GooglePY <zhounet...@gmail.com>
�ܸ���������ӿ��� �������
headless-browser ֮ǰû�ù�������Ҳû�ѵ�ʲ ô����


�����ҵ� iPhone

�� 2013-4-8��15:01��flyer <flye...@gmail.com> ���

�� pyquery �ֶ�ִ�� js�����߿���ͨ�� headless-browser �Զ�������ҳ�е� js


2013/4/8 GooglePY <zhounet...@gmail.com>
���⣬ ��ָ·��

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��





--
���費�����п�ͥǰ�������䣻 ȥ�����⣬��������ƾ����档

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��
 
 
--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��
 
 



--
���費�����п�ͥǰ�������䣻 ȥ�����⣬��������ƾ����档

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups/opt_out��
 
 
--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳ �ĵ����ʼ����뷢 �͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����� �����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢 �͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups /opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

����: ����б�! �ǻ�����! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
���յ����ʼ�����Ϊ������ Google ������̳�ġ�python-cn(�����û���,CPyUG �ʼ��б�)����̳��
Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ��� python-cn+...@googlegroups.com��
Ҫ�鿴���ѡ������ https://groups.google.com/groups /opt_out��
 
 

--
--
�ʼ�����: `CPyUG`�����û���(����Python�����ʼ��б�)
����: http://code.google.com/p/cpyug/wiki/PythonCn
����: pyth...@googlegroups.com
�˶�: python-cn+...@googlegroups.com (��˷����ż���!)

张仁宁

unread,
Apr 19, 2013, 1:34:05 AM4/19/13
to pyth...@googlegroups.com
感谢@Siva,再研究下这个东西


在 2013年4月19日上午11:15,Siva <siva...@gmail.com>写道:
Solution is to either add an arbitrary `setTimeout` to your PhantomJS render (e.g. 5 seconds) or else poll the page (i.e. using `page.evaluate`) for some indicator HTML element or JS variable that would signify that all RequireJS loading has completed.

这是我在phtantomjs邮件列表提问获得的一个回复。poll可能适合你。

On 04/19/2013 10:13 AM, 张仁宁 wrote:
我现在是这么做的。等待js加载完毕是个在时间上很不确定的过程,不知道有什么好办法可以减少加载时间。但是 楼上几位说的用requests可以直接获得js执行后的html,不知道用没用这些工具。按说没有一个浏览器引擎,是没法渲染的吧


在 2013年4月19日上午10:07,Siva <siva...@gmail.com>写 道:
requests只是封装了一些网络相关的操作。并没有提供js的解析环境。你想要 获得js解析的解析后的结果。需要使用selenium 或者phantomjs,
selenium 这个我没用过,据说是需要浏览器支持的。phantomjs是做了一个headless的browser。无图形界 面的浏览器。如果没记 错应该是基于webkit的。

使用phantomjs解析js的时候,还有一些需要注意的就是使用了require.js这类的js异步加载的网 页。你不能直接在 onload之后就取dom,需要等待js渲染完毕再取元素。
可以利用insert js的方式,来完成这一目标。

On 04/18/2013 10:46 PM, 李瑾 wrote:
我也是用的phantomjs , 第一次听说requests


在 2013年4月18日下午7:07,张仁宁 <ren...@staff.xianguo.com>写 道:
我也是第一次听说requests,以前都用phantomjs解析js。 刚看了下 requests文档,没找到怎么得到js执行后的结果,我试了下requests.get(url),得到的是网页源码。
请问,怎么才能得到解析js后的dom呢?thank you very much。
在 2013年4月18日下午5:38,Bang Zhou <zhounet...@gmail.com>写 道:
....... 是我不认识 requests 这一神器, 一般都用urllib,urllib2
在 2013年4月18日下午5:07,kaifeng jin <jkf...@gmail.com>写 道:

我看见问题第一反应就是用requests不就直接得到 js运行后的html了 么。太年轻,以为你们谈论的问题很高深,没敢回答。。。


Sent from Mailbox for iPhone

On Thu, Apr 18, 2013 at 5:00 PM, Bang Zhou <zhounet...@gmail.com> wrote:

多谢各位, 我后来的解决办法居然来是 requests ,  此物有奇效啊


在 2013年4月18日下午 4:45,MadFrog <bitr...@gmail.com>写 道:
selenium  实现过。。。但是感觉奇慢无 比。。
我 应用的场景是爬虫爬东西,但是 结果是经过 js ajax 获得的内容。。。
那 如果是这样,。。还不如分析一 下 js.. 直接去取JS的结果


2013/4/8 flyer <flye...@gmail.com>
看 你的需求。

如果你只是想通过 python 解析 js,使用 pyquery,看官方文档。

如果是想自动解析页 面中的 js,通过 'headless-browser',这只是一个概念,即通过在内存中运行浏览器或浏览器内核、不在 X 环境中展现这个浏览器,来使用常见的浏览器的功能。考虑通过 phantomjs、 qtwebkit、 selenium 实现。
qtwebkit 相关的资料在之前邮件列表之前 的邮件发过,请搜下。
phantomjs 和 selenium 看官方文档即可。


2013/4/8 GooglePY <zhounet...@gmail.com>
能给点资料链接看看 不,这个
headless-browser 之前没用过,搜了下也没搜到什 么??


发自我的 iPhone

在 2013-4-8,15:01,flyer <flye...@gmail.com> 写道:

用 pyquery 手动执行 js,或者考虑通过 headless-browser 自动解析网页中的 js


2013/4/8 GooglePY <zhounet...@gmail.com>
如题, 求指路!

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out





--
宠辱不惊,闲看庭前花开花落; 去留无意,漫随天边云卷云舒。

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 
--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
宠辱不惊,闲看庭前花开花落; 去留无意,漫随天边云卷云舒。

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 
--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛 的电子邮件,请发 送电子邮件到 python-cn+...@googlegroups.com

要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮 件,请发送电子邮件到 python-cn+...@googlegroups.com

要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发 送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups /opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups /opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
---
您收到此邮件是因为您订阅了 Google 网上论坛的“python-cn(华蟒用户组,CPyUG 邮件列表)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 python-cn+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
 
 

--
--
邮件来自: `CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)

巴雨维

unread,
Jun 1, 2013, 4:56:59 AM6/1/13
to pyth...@googlegroups.com
那么丑的一句话。。还要import sys。。。


GameXG

unread,
Jun 2, 2013, 4:17:40 AM6/2/13
to python-cn
有时候不用不行啊,第三方库有问题,传进去 unicode  还是提示编码错误。。。
Reply all
Reply to author
Forward
0 new messages