小编ale*_*cxe的帖子

使用Mechanize(Python)填写表单

我想使用python mechanize填写此页面上的表单,然后记录响应.我该怎么办?当我使用以下代码在此页面上搜索表单时,它仅显示搜索的表单.如何找到其他表单的表单名称以及名称,性别等字段?

http://aapmaharashtra.org/join-us

码:

import mechanize
br=mechanize.Browser()
br.open("http://aapmaharashtra.org/join-us")
for form in br.forms():
    print "Form name:", form.name
    print form
Run Code Online (Sandbox Code Playgroud)

python forms mechanize web-scraping python-2.7

8
推荐指数
1
解决办法
2万
查看次数

python xml.etree.ElementTree附加到子元素

我正在尝试使用xml.etree.ElementTree来解析xml文件,查找特定标记,将子项附加到该标记,将另一个子项附加到新创建的标记并将文本添加到后一个子项.

我的XML:

<root>
<a>
    <b>
      <c>text1</c>
    </b>
    <b>
      <c>text2</c>
   </b>
</a>
</root>    
Run Code Online (Sandbox Code Playgroud)

期望的XML:

<root>
<a>
    <b>
      <c>text1</c>
    </b>
    <b>
      <c>text2</c>
   </b>
    <b>
      <c>text3</c>
   </b>
</a>
</root>
Run Code Online (Sandbox Code Playgroud)

当前代码:

import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()


for x in root.iter():
    if (x.tag == 'a'):
        ET.SubElement(x, 'b')
        ET.SubElement(x, 'c')
        #add text
Run Code Online (Sandbox Code Playgroud)

这似乎有效,除了'c'作为'a'而不是'b'的孩子.

像这样:

<root>
<a>
    <b>
      <c>test1</c>
    </b>
    <b>
      <c>test2</c>
    </b>
  <b /><c/></a>
</root>
Run Code Online (Sandbox Code Playgroud)

另外,如何将文本添加到新创建的元素"c"中?我可以迭代直到找到没有文字的标签'c',但必须有更好的方法.

python xml elementtree xml-parsing

8
推荐指数
1
解决办法
2万
查看次数

在PyPy下使用__slots__

我有这个简单的代码帮助我测量类的__slots__执行方式(从这里开始):

import timeit

def test_slots():
    class Obj(object):
        __slots__ = ('i', 'l')

        def __init__(self, i):
            self.i = i
            self.l = []

    for i in xrange(1000):
        Obj(i)

print timeit.Timer('test_slots()', 'from __main__ import test_slots').timeit(10000)
Run Code Online (Sandbox Code Playgroud)

如果我通过python2.7运行它 - 我会在6秒左右得到一些东西 - 好吧,它比没有插槽时更快(并且内存效率更高).

但是,如果我在PyPy下运行代码(使用2.2.1 - 64位用于Mac OS/X),它开始使用100%CPU并且"从不"返回(等待几分钟 - 没有结果).

到底是怎么回事?我应该__slots__在PyPy下使用吗?

如果我传递不同的数字,会发生什么timeit():

timeit(10) - 0.067s
timeit(100) - 0.5s
timeit(1000) - 19.5s
timeit(10000) - ? (probably more than a Game of Thrones episode)
Run Code Online (Sandbox Code Playgroud)

提前致谢.


请注意,如果我使用namedtuples,则会观察到相同的行为:

import collections
import timeit …
Run Code Online (Sandbox Code Playgroud)

python performance pypy slots

8
推荐指数
2
解决办法
868
查看次数

点正则表达式搜索

我需要找到PyPI匹配特定正则表达式的所有包:

^django-.*?admin.*$
Run Code Online (Sandbox Code Playgroud)

基本上,包的名字应该与启动django-,并有admin后话.例如,以下包应该匹配:

django-redis-admin
django-admin-ckeditor 
django-admintools-bootstrap
Run Code Online (Sandbox Code Playgroud)

我能做到pip search django-,但是有很多我不感兴趣的软件包.

是否pip提供了一种通过正则表达式查找包的方法?或者,我应该只是管的结果django-,以grep过滤掉无关的包?

此外,可能是一个的"交集" pip search django-,并pip search admin有助于太.

python regex packages pip

8
推荐指数
1
解决办法
2291
查看次数

Python unittest忽略了numpy

我正在使用unittest编写python测试并从命令行运行测试

 nosetests --with-coverage -x
Run Code Online (Sandbox Code Playgroud)

当我在我的一个测试中包含numpy时,它也试图测试numpy包.示例输出:

...
Name                            Stmts   Miss  Cover   Missing
-------------------------------------------------------------
CLOCK                              39     33    15%   3, 7-13, 17, 20-25, 28-47
LFU                                42      1    98%   52
LRU                                95      9    91%   12, 64, 68, 101, 115-118, 131
LRU10                              54      1    98%   68
LRU3                               54      1    98%   68
argparse                         1177   1177     0%   3-2361
cache                              86     33    62%   36-47, 86-89, 95-116
common                             87     54    38%   17, 20, 23, 28, 31-32, 35-36, 39, 42, 46, 48, 50, 52, 54, 57-64, 67-68, 72-89, 95-96, 102-107, …
Run Code Online (Sandbox Code Playgroud)

python unit-testing numpy nosetests python-unittest

8
推荐指数
1
解决办法
1008
查看次数

Selenium pdf自动下载无效

我是selenium的新手,我正在编写一个刮刀,可以从给定的站点自动下载pdf文件.

以下是我的代码:

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2);
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "/home/jill/Downloads/Dinamalar")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")

browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://epaper.dinamalar.com/PUBLICATIONS/DM/MADHURAI/2015/05/26/PagePrint//26_05_2015_001_b2b69fda315301809dda359a6d3d9689.pdf");
webobj = browser.find_element_by_id("download").click();
Run Code Online (Sandbox Code Playgroud)

我按照Selenium 文档和此链接中提到的步骤进行操作.我不确定为什么每次都会显示下载对话框.

有没有办法解决它,否则有一种方法可以提供"应用程序/所有",以便可以下载所有文件(解决方法)?

python selenium web-crawler web-scraping selenium-webdriver

8
推荐指数
1
解决办法
9978
查看次数

标签Protractor + Jasmine来运行套件

我试图找出一个办法以同样的方式使用,或者还好说,类似的方式,该标记选项cucumberJS用了protractor,但与JasminE,有没有办法来标记不同的场景,如:@smoke,@regression等等.然后告诉控制台运行那些?

我拒绝使用Cucumber,因为它的支持它似乎变得片状!

任何帮助都感激不尽!

javascript jasmine protractor cucumberjs

8
推荐指数
2
解决办法
3921
查看次数

在Protractor中直接在JavaScript中定位元素

在其中一个测试中,我需要滚动到一个元素的视图,这可以通过使用Protractor定位的元素参数化脚本的scrollIntoView()方法来完成:

var elm = element(by.id("myid"));
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());
Run Code Online (Sandbox Code Playgroud)

但是,我们也可以通过getElementById()以下方式直接找到元素:

browser.executeScript("document.getElementById('myid').scrollIntoView();");
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别?

scrollIntoView()被选择用于仅样品的目的.脚本中的逻辑可能更复杂.

javascript testing selenium selenium-webdriver protractor

8
推荐指数
1
解决办法
393
查看次数

来自雅虎的python lxml etree applet信息

雅虎财务更新了他们的网站 我有一个用于提取分析师建议的lxml/etree脚本.然而,现在,分析师的建议在那里,但仅作为图形.您可以在此页面上看到示例.右栏中名为"建议趋势"的图表显示了分析报告的数量,显示强买入,买入,持有,表现不佳和卖出.

我的猜测是雅虎会在接下来的一段时间内对页面进行一些调整,但它让我想知道这些数据是否可以以任何合理的方式提取?

  1. 我的意思是,有没有办法让图形与之一起工作?
  2. 即使一个人成功了,是否有合理的方法从图形中提取数据?

我以前得到这样的来源:

url = 'https://finance.yahoo.com/quote/'+code+'/analyst?p='+code
tree = etree.HTML(urllib.request.urlopen(url).read())
Run Code Online (Sandbox Code Playgroud)

然后在html树中查找数据.但显然现在这是不可能的.

python lxml web-scraping python-3.x

8
推荐指数
1
解决办法
366
查看次数

Protractor中元素(...)和元素(...)之间的区别.getWebElement()

  • 当两者完全相同时,为什么我们需要element(...).getWebElement()结束element(...)
  • 为什么两个API具有相同的功能

javascript selenium selenium-webdriver protractor

8
推荐指数
1
解决办法
2607
查看次数