我已经在一个virtualenv
环境中使用Python 2.7.10 几个月了.
昨天,激活环境很顺利,但是今天突然间我在尝试从终端启动Python时遇到了这个神秘的错误:
Illegal instruction: 4
我没有改变我的环境(AFAIK),所以我很难尝试解决这个错误是什么以及导致它的原因.
Python在这种virtualenv
环境之外工作正常.通过/usr/local/bin
它运行时没有问题.
我希望让我的 Python 脚本从法兰克福证券交易所网页下载主数据(下载,XLSX) Excel 文件。
\n\n当使用urrlib
和检索它时wget
,结果发现该 URL 指向一个Blob ,并且下载的文件只有 289 字节且不可读。
\n \n\n\n
我对 Blob 完全不熟悉,并且有以下问题:
\n\n使用Python能否成功检索“Blob后面”的文件?
如果是这样,如果存在 \xe2\x80\x93 这样的东西,是否有必要揭露 Blob \xe2\x80\x93 背后的“真实”URL?如何?我担心的是上面的链接不是静态的,而是经常变化的。
使用relativeXPath
与Selenium
,有没有办法以following-sibling
兄弟姐妹的文本内容为指导来获取 的文本内容?
<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
。
该路径需要是相对的,因为这些表格单元格可以出现在页面上的任何位置。上面是完整网页的截图。在同一个块内之前还可以插入其他内容<tr>
。
我试过这个似乎找到了第一个单元格:
\n\n//text()[contains(.,\'Looking for\')]
但是,我正在努力解决如何继续获取第二个兄弟姐妹中的文本。
\n\n我的尝试看起来像(错误地):
\n\n//text()[contains(.,\'Looking for\')]/following-sibling::text()
我使用以下代码处理使用Ctrl+ C终止正在运行的Python脚本的情况。
except KeyboardInterrupt:
print "ABORTED"
Run Code Online (Sandbox Code Playgroud)
但是,这也会终止我的Selenium WebDriver
浏览器。
有没有办法终止脚本并使浏览器保持活动状态,以便我可以继续使用它?
我通常要做的是通过Ctrl+ 暂停脚本Z。不幸的是,这经常导致浏览器死机并且不响应。
我正在尝试使用XPath Selenium
for 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) 我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).ext
,filename (2).ext
等在MacOS上。
我猜可能没有设置允许从 Firefox 内部覆盖,以防止意外(?)。
(在这种情况下,我认为解决方案是使用其他 Python 模块处理磁盘上的覆盖;另一个主题)。
在迭代 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) 我正在研究一种不断写入的爬行功能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) 我试图确定 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
,但在这里似乎无关紧要。
我只是第一次尝试 Pine 脚本,无法使这项工作 \xe2\x80\x93 ,根据其他示例,这应该是微不足道的。
\nstudy("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 无法使用营业收入,还是我遗漏了什么?
\npython ×7
selenium ×4
pandas ×2
python-2.7 ×2
xpath ×2
blob ×1
content-type ×1
download ×1
firefox ×1
macos ×1
mime-types ×1
pine-script ×1
sys ×1
urllib ×1
virtualenv ×1
xml ×1