Tag: 机械化

如何用NokogiriparsingHTML表格?

我安装了Ruby和机械化。 在我看来,在Nokogiri可以做我想做的事情,但我不知道该怎么做。 这table呢? 它只是vBulletin论坛网站的HTML的一部分。 我试图保持HTML结构,但删除一些文本和标签属性。 我想要得到一些细节,如:标题,作者,date,时间,回复和视图。 请注意,HTML文档中有几个表? 我在它的tbody之后的一个特定的表格之后, <tbody id="threadbits_forum_251"> 。 名字将永远是相同的(我希望)。 我可以在代码中使用tbody和name吗? <table > <tbody> <tr> <!– table header –> </tr> </tbody> <!– show threads –> <tbody id="threadbits_forum_251"> <tr> <td></td> <td></td> <td> <div> <a href="showthread.php?t=230708" >Vb4 Gold Released</a> </div> <div> <span><a>Paul M</a></span> </div> </td> <td> 06 Jan 2010 <span class="time">23:35</span><br /> by <a href="member.php?find=lastposter&amp;t=230708">shane943</a> […]

屏幕抓取:绕过“HTTP错误403:robots.txt不允许的请求”

有没有办法解决以下问题? httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt 是唯一的方法来联系网站所有者(barnesandnoble.com)..我build立一个网站,将带来更多的销售,不知道为什么他们会拒绝访问在一定的深度。 我在Python2.6上使用mechanize和BeautifulSoup。 希望有一个解决办法

如何避免HTTP错误429(太多的请求)的Python

我正在尝试使用Pythonlogin到一个网站,并从几个网页收集信息,我得到以下错误: Traceback (most recent call last): File "extract_test.py", line 43, in <module> response=br.open(v) File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open return self._mech_open(url, data, timeout=timeout) File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in _mech_open raise response mechanize._response.httperror_seek_wrapper: HTTP Error 429: Unknown Response Code 我用time.sleep() ,它的工作原理,但它似乎非智能和不可靠的,有没有其他方法来躲避这个错误? 这是我的代码: import mechanize import cookielib import re first=("example.com/page1") second=("example.com/page2") third=("example.com/page3") fourth=("example.com/page4") ## I have seven […]

将目录添加到sys.path / PYTHONPATH

我正试图从一个特定的目录中导入一个模块。 问题是,如果我使用sys.path.append(mod_directory)追加path,然后打开python解释器,则将目录mod_directory添加到sys.path列表的末尾。 如果在打开python解释器之前导出PYTHONPATHvariables,则该目录将被添加到列表的开头。 在后一种情况下,我可以导入模块,但在前者,我不能。 有人可以解释为什么发生这种情况,并给我一个解决scheme,以添加mod_directory的开始, 在 python脚本内?

哪个在Python中最好:urllib2,PycURL还是机械化?

好吧,我需要使用Python下载一些网页,并对我的选项做了一个快速调查。 包含在Python中: urllib – 在我看来,我应该使用urllib2来代替。 urllib没有cookie支持,只有HTTP / FTP /本地文件(没有SSL) urllib2 – 完整的HTTP / FTP客户端,支持cookies等最需要的东西,不支持所有的HTTP动词(只有GET和POST,没有TRACE等) 全function: 机械化 – 可以使用/保存Firefox / IE cookies,采取行动如下第二个环节,积极维护(2011年3月发布0.2.5) PycURL – 支持所有curl(FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP),坏消息:自2008年9月9日起更新(7.19.0) 新的可能性: urllib3 – 支持连接重用/共享和文件发布 不推荐使用(也可以使用urllib / urllib2): httplib – 仅HTTP / HTTPS(无FTP) httplib2 – 仅HTTP / HTTPS(无FTP) 第一件令我感到震惊的事情是,urllib / urllib2 / PycURL / mechanize都是非常成熟的解决scheme。 机械化和PycURL附带一些Linux发行版(例如Fedora 13)和BSD,因此安装通常不是问题(所以这很好)。 urllib2看起来不错,但我想知道为什么PycURL和机械化两者似乎非常受欢迎,是否有我缺less的东西(即如果我使用urllib2将我画在一个angular落在某个点?)。 我真的很喜欢这些东西的利弊反馈,所以我可以为自己做出最好的select。 编辑:在urllib2中添加动词支持的注释

mechanize python点击一个button

我有一个<input type="button" name="submit" />button的<input type="button" name="submit" /> ,希望能够点击它。 我已经尝试mech.form.click("submit")但出现以下错误: ControlNotFoundError: no control matching kind 'clickable', id 'submit' mech.submit()也不起作用,因为它的types是button,而不是提交。 有任何想法吗? 谢谢。

机械化和Javascript

我想使用Mechanize来模拟浏览到包含DOM事件和AJAX的活动JavaScript的网页,到目前为止我还没有find办法做到这一点。 我看过一些支持JavaScript的Python客户端浏览器,比如Spynner和Zope,他们都没有为我工作。 Spynner始终崩溃PyQt和Zope不支持JavaScript,因为它似乎。 有没有一种方法来模拟只用Python浏览,没有额外的进程,如WATIR或操作Firefox或Internet Explorer的库,同时完全支持Javascript,就像实际浏览页面一样?

无法导入肯定安装的python模块(机械化)

随着我的Ubuntu 12.04机器上的python(2.7.3)安装和导入模块持续的困扰。 在这里,我遇到了一个问题,那就是在我的机器和各种虚拟环境中确实已经安装了机械化。 我已经尝试从pip,easy_install安装,通过python setup.py install从这个repo python setup.py install : https : //github.com/abielr/mechanize 。 无济于事,每一次,我进入我的python互动,我得到: Python 2.7.3 (default, Aug 1 2012, 05:14:39) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import mechanize Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named mechanize >>> […]

Perl的WWW :: Mechanize有PHP的等价物吗?

我正在寻找一个function类似于Perl的WWW :: Mechanize ,但PHP的function。 基本上,它应该允许我用简单的语法提交HTTP GET和POST请求,然后parsing生成的页面,并以简单的格式返回所有的表单及其字段,以及页面上的所有链接。 我知道关于CURL,但它有一点准备,语法是非常丑陋的(吨curl_foo($curl_handle, …)语句 澄清: 我想要的东西比目前的答案更高级。 例如,在Perl中,您可以执行如下操作: # navigate to the main page $mech->get( 'http://www.somesite.com/' ); # follow a link that contains the text 'download this' $mech->follow_link( text_regex => qr/download this/i ); # submit a POST form, to log into the site $mech->submit_form( with_fields => { username => 'mungo', password => […]

我如何使用Mechanize来处理JavaScript?

我正在连接到一个网站,login。 该网站将我redirect到新页面,并且Mechanize处理所有Cookie和redirect作业,但是我无法获取最后一页。 我用Firebug,再次做了同样的工作,看到有两个页面,我不得不通过机械化。 我快速浏览了页面,发现有一些JavaScript和HTML代码,但是无法理解,因为它看起来不像普通的页面代码。 这些页面是什么? 他们如何redirect到其他页面? 我该怎么做才能通过这些?