小编Win*_*ags的帖子

尝试在OS X中使用virtualenv启动Python时出现"非法指令:4"

我已经在一个virtualenv环境中使用Python 2.7.10 几个月了.

昨天,激活环境很顺利,但是今天突然间我在尝试从终端启动Python时遇到了这个神秘的错误:

Illegal instruction: 4

我没有改变我的环境(AFAIK),所以我很难尝试解决这个错误是什么以及导致它的原因.

Python在这种virtualenv环境之外工作正常.通过/usr/local/bin它运行时没有问题.

macos virtualenv python-2.7

6
推荐指数
1
解决办法
2971
查看次数

使用 Python 从 Blob URL 下载文件

我希望让我的 Python 脚本从法兰克福证券交易所网页下载主数据(下载,XLSX) Excel 文件。

\n\n

当使用urrlib和检索它时wget,结果发现该 URL 指向一个Blob ,并且下载的文件只有 289 字节且不可读。

\n\n
\n

http://www.xetra.com/blob/1193366/b2f210876702b8e08e40b8ecb769a02e/data/All-tradable-ETFs-ETCs-and-ETNs.xlsx

\n
\n\n

我对 Blob 完全不熟悉,并且有以下问题:

\n\n
    \n
  • 使用Python能否成功检索“Blob后面”的文件?

  • \n
  • 如果是这样,如果存在 \xe2\x80\x93 这样的东西,是否有必要揭露 Blob \xe2\x80\x93 背后的“真实”URL?如何?我担心的是上面的链接不是静态的,而是经常变化的。

  • \n
\n

python blob urllib download

6
推荐指数
1
解决办法
5万
查看次数

XPath:仅根据 text() 获取后续兄弟

使用relativeXPathSelenium,有没有办法以following-sibling兄弟姐妹的文本内容为指导来获取 的文本内容?

\n\n
<table class="table">\n    <tbody>\n        <tr>\n            <td>Looking for</td>\n            <td\xc2\xa0class="text-right">This!</td>\n        </tr>\n    </tbody>\n</table>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在上面的示例中,我想This!根据text 检索文本片段Looking for

\n\n

该路径需要是相对的,因为这些表格单元格可以出现在页面上的任何位置。上面是完整网页的截图。在同一个块内之前还可以插入其他内容<tr>

\n\n

我试过这个似乎找到了第一个单元格:

\n\n

//text()[contains(.,\'Looking for\')]

\n\n

但是,我正在努力解决如何继续获取第二个兄弟姐妹中的文本。

\n\n

我的尝试看起来像(错误地):

\n\n

//text()[contains(.,\'Looking for\')]/following-sibling::text()

\n

xml selenium xpath

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

Selenium:在不关闭浏览器的情况下退出Python脚本

我使用以下代码处理使用Ctrl+ C终止正在运行的Python脚本的情况。

except KeyboardInterrupt:
    print "ABORTED"
Run Code Online (Sandbox Code Playgroud)

但是,这也会终止我的Selenium WebDriver浏览器。

有没有办法终止脚本并使浏览器保持活动状态,以便我可以继续使用它?

我通常要做的是通过Ctrl+ 暂停脚本Z。不幸的是,这经常导致浏览器死机并且不响应。

python selenium sys keyboardinterrupt

5
推荐指数
1
解决办法
3672
查看次数

XPath:查找包含文本X而不是Y的元素

我正在尝试使用XPath Seleniumfor Python 找到一个Web元素.web元素应包含文本"Chocolate"但不包含"Dark".

我已经尝试过这种语法,但没有让它起作用(请注意parantheses):

choco = driver.find_element_by_xpath("//*[text()[contains(., 'Chocolate')] and not[[contains(., 'Dark')]]]")
Run Code Online (Sandbox Code Playgroud)

以下是使用换行符和串联以获得可读性的相同代码:

choco = driver.find_element_by_xpath((
                                    "//*[text()[contains(., 'Chocolate')]" + 
                                    "and not[[contains(., 'Dark')]]]"
                                    ))
Run Code Online (Sandbox Code Playgroud)

python selenium xpath

5
推荐指数
1
解决办法
5388
查看次数

Python Selenium:Firefox set_preference 在下载时覆盖文件?

selenium在 Python 2.7 中使用这些 Firefox 首选项设置:

ff_profile = webdriver.FirefoxProfile(profile_dir)

ff_profile.set_preference("browser.download.folderList", 2)
ff_profile.set_preference("browser.download.manager.showWhenStarting", False)
ff_profile.set_preference("browser.download.dir", dl_dir)
ff_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, text/comma-separated-values, application/octet-stream")
Run Code Online (Sandbox Code Playgroud)

使用 Selenium,我想反复下载相同的文件,并覆盖它,从而保持相同的文件名——无需我确认下载。

通过上面的设置,它会下载不求回报的位置,但所有的下载将与文件名创建副本filename (1).extfilename (2).ext等在MacOS上。

我猜可能没有设置允许从 Firefox 内部覆盖,以防止意外(?)。

(在这种情况下,我认为解决方案是使用其他 Python 模块处理磁盘上的覆盖;另一个主题)。

python firefox selenium

5
推荐指数
1
解决办法
2231
查看次数

Pandas:在迭代行时有条件地将行插入到 DataFrame 中

在迭代 Pandas DataFrame 中特定列的行时,如果当前迭代行中的单元格满足特定条件,我想在当前迭代行下方添加一个新行。

举例来说:

df = pd.DataFrame(data = {'A': [0.15, 0.15, 0.7], 'B': [1500, 1500, 7000]})
Run Code Online (Sandbox Code Playgroud)

数据框:

      A     B
0  0.15  1500
1  0.15  1500
2  0.70  7000
Run Code Online (Sandbox Code Playgroud)

试图:

y = 100                             #An example scalar

i = 1

for x in df['A']:
    if x is not None:               #Values in 'A' are filled atm, but not necessarily.
        df.loc[i] = [None, x*y]     #Should insert None into 'A', and product into 'B'.
        df.index = df.index + 1     #Shift index? According to this …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
2827
查看次数

Pandas:将DataFrame写入csv时的列的随机顺序

我正在研究一种不断写入的爬行功能output.csv.如果是第一次传递,它会将带有列的第一行写入header空白文件.对于以下传递,它将append没有标题.

我的问题是列顺序混乱.我希望他们遵循我指定的顺序df = pd.DataFrame.

import pandas as pd

input = pd.read_csv(input.csv, delimiter=",")

run = 0

def crawl(x):

    global run
    run = run + 1

    #Assign strings a, b, c

    df = pd.DataFrame({"A": [a], "B": [b], "C": [c]})

    if run == 1:
        df.to_csv("output.csv")
    if run != 1:
        df.to_csv("output.csv", header=None, mode="a")

input["X"].apply(crawl, axis=1)
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
2037
查看次数

HTML URL生成下载时如何学习PDF的内容类型

我试图确定 URL 的 MIME 类型是否为 PDF 文件,使用requests content-type.

如果查询的 URL 实际上指向托管的 PDF 文件,则以下脚本可以正常工作。但是,使用下面的当前 URL,即使它会导致强制从 Web 下载 PDF 文件(该文件本身在 Chrome 中无法直接从 URL 读取),也会content-type被检测到text/html; charset=utf-8

import requests

url = 'https://derinet.vontobel.ch/api/kid?isin=DE000VS0URS6&language=en'

def getContentType(url):
    r = requests.Session().head(url, allow_redirects=True)
    contentType = r.headers['content-type']

    print 'Content type: ' + contentType

    if (contentType == 'application/pdf') | (contentType == 'application/x-pdf'):
        print "content-type is PDF"
    else:
        print "content-type is not PDF!"

getContentType(url)
Run Code Online (Sandbox Code Playgroud)

有没有办法检查实际生成的 PDF 下载的 MIME 类型,而不是生成它的 html 页面(blob??)?

我已经设置了allow_redirects=True,但在这里似乎无关紧要。

python content-type python-2.7 mime-types python-requests

4
推荐指数
1
解决办法
4220
查看次数

找不到函数或函数参考财务

我只是第一次尝试 Pine 脚本,无法使这项工作 \xe2\x80\x93 ,根据其他示例,这应该是微不足道的。

\n
study("Price to Operating Income", overlay=true, scale=scale.left)\nop_income = financial(syminfo.tickerid, "OPER_INCOME", "FQ")\nprice_op_income = close/op_income\nplot(price_op_income)\n
Run Code Online (Sandbox Code Playgroud)\n
\n

找不到函数或函数参考财务

\n
\n

这仅仅是因为 TradingView 免费版本中的 Pine Script 无法使用营业收入,还是我遗漏了什么?

\n

pine-script

4
推荐指数
1
解决办法
4529
查看次数