我正在努力在python中找到一个方法,它允许你在当前使用的Web浏览器中读取数据.实际上,我正在尝试在本地控制的公司网页上下载大量数据框,并将其实施到数据框中.问题是该网站有一个相当复杂的身份验证令牌进程,我无法使用各种用户参数使用大量的webdrivers,Requests,urllib和cookielib来绕过Selenium.我完全放弃了这个方面,因为我几乎肯定认证过程比使用这些库容易实现的更多.
但是,当我在使用WebBrowser登录的当前浏览器中快速测试打开新选项卡时,我确实设法绕过了所需的标记化过程.传统上,WebBrowser不提供读取功能,这意味着即使页面可以打开,页面上的数据也无法读入pandas数据帧.这让我觉得我可以使用Win32com,打开一个浏览器,登录,然后运行其余的脚本,但是再次,没有一般的读取能力的Internet Explorer探测意味着我无法发送我想要的信息pandas .我很难过.有任何想法吗?
我可以获得必要的身份验证令牌脚本,但我确信在这方面发生任何事情之前需要一到两周的时间.我宁愿在等待公司的实际auth脚本的同时得到一些东西.
更新:我从公司收到了身份验证令牌,但它需要在另一台我无法访问的服务器上使用python包,主要是因为我在我的部门使用Python很奇怪.因此,上述仍然适用 - 需要一种用于读取和操作打开的浏览器的方法.
我正在努力弄清楚如何开发一个给定格式的方阵
a a 0
a b 3
a c 4
a d 12
b a 3
b b 0
b c 2
...
Run Code Online (Sandbox Code Playgroud)
对于这样的事情:
a b c d e
a 0 3 4 12 ...
b 3 0 2 7 ...
c 4 3 0 .. .
d 12 ...
e . ..
Run Code Online (Sandbox Code Playgroud)
在熊猫.我开发了一种方法,我认为它可以工作但需要永远运行,因为每次使用for循环时,它必须遍历从每个值开始的每个列和行.我觉得我肯定在这里重新发明轮子.鉴于有多少列和行,这对于我的数据集也是不现实的.在python中是否有类似于R的强制转换功能的东西可以更快地做到这一点?
我有数据,其中有类似的数据
id name model_# ms bp1 cd1 sf1 sa1 rq1 bp2 cd2 sf2 sa2 rq2 ...
1 John 23984 1 23 234 124 25 252 252 62 194 234 234 ...
2 John 23984 2 234 234 242 62 262 622 262 622 26 262 ...
Run Code Online (Sandbox Code Playgroud)
适用于数百个模型,时间长达 10 毫秒,变量计数高达 21。
我通常使用 pd.melt 进行分析,查看 bp1:bp21 或其他内容。我目前需要创建一个熔化,在其中查看 bp1 值和 rq 1 值。
我希望有效地创建这样的东西:
id model_# ms variable_x value_x variable_y value_y
0 113 77515 1 bp1 23 rq1 252
1 113 77515 1 …Run Code Online (Sandbox Code Playgroud) 我完全困惑了。我们遇到了一个错误,我们很容易修复了它,但我们很困惑为什么错误生成的值会创建它所做的输出。具体来说:
为什么Python中~True等于?-2
~True
>> -2
Run Code Online (Sandbox Code Playgroud)
按位运算符不应该~只返回二进制吗?
(Python v3.8)
我正在抓取一些网站的数据。许多网站我抓取完全没有问题,但有几个网站返回加密数据。我在下面创建了一个基本演示来说明正在发生的事情。有没有办法解密返回的结果?
\n\nheaders_Get = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.9',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'DNT': '1',\n 'Connection': 'keep-alive',\n 'Upgrade-Insecure-Requests': '1'\n}\n\nq = 'www.nike.com'\ns = requests.Session()\nurl = 'http://' + q \nr = s.get(url, headers=headers_Get)\nr.text\nRun Code Online (Sandbox Code Playgroud)\n\n上面的代码从 Nike.Com 返回预期的 html。
\n\n但是,如果我们运行相同的代码并将 q = 'www.nike.com' 替换为 q = 'www.vanityfair.com',我们会收到如下所示的代码:
\n\n\\x1bX\xef\xbf\xbdU?\xef\xbf\xbd(J\xef\xbf\xbd\\x1a\xef\xbf\xbd\xef\xbf\xbd|=;\xef\xbf\xbd:\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdN\xef\xbf\xbd\\x01\xef\xbf\xbd\xef\xbf\xbdJ\xef\xbf\xbd.\xef\xbf\xbd\xef\xbf\xbd$\xef\xbf\xbdD[\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd1\xef\xbf\xbd\\x11[T2/\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdrq}\xef\xbf\xbd\\x00\xca\x81\xef\xbf\xbd\\x06(\xef\xbf\xbd\xef\xbf\xbdJ,\xef\xbf\xbd\xdc\xb3R\xef\xbf\xbd\\'Gs\xef\xbf\xbd\xd1\x8f\xef\xbf\xbdl\xef\xbf\xbd\\n\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd)\xef\xbf\xbdQf\xef\xbf\xbd\xef\xbf\xbd\\x11\xef\xbf\xbd\\x15\xef\xbf\xbd\\x80\xef\xbf\xbd\xef\xbf\xbd\\r\\x1d\xef\xbf\xbdo \xef\xbf\xbd<\xef\xbf\xbdo\xef\xbf\xbd??>}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\x07\xef\xbf\xbd\xef\xbf\xbd\\n\xef\xbf\xbd\\x1dE\\ti\xef\xbf\xbd\\x19\\x01D\xef\xbf\xbd)\xef\xbf\xbdz\\x06\\x00p\xef\xbf\xbd\\x18\xef\xbf\xbde\\n(\xef\xbf\xbds&\xef\xbf\xbd\xef\xbf\xbd\\x1c\xef\xbf\xbd\xef\xbf\xbdga$e\\n\xef\xbf\xbdPGd\\x07\xe7\x90\x9a\\x17I\xef\xbf\xbd8\xef\xbf\xbd\xde\xa9\xef\xbf\xbdA\xef\xbf\xbd\\x1f\xef\xbf\xbdc^\xef\xbf\xbdC\xef\xbf\xbdzh\xef\xbf\xbd\xc7\xb4\xef\xbf\xbdt\xef\xbf\xbd\xef\xbf\xbd@\xef\xbf\xbdX\xef\xbf\xbd\xef\xbf\xbdwbl\\x18\xef\xbf\xbd|}[\xef\xbf\xbd\xef\xbf\xbdo\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdg\\x02;\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd8+\xef\xbf\xbd\xef\xbf\xbd:6\\x039\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd-\\x19\\x1b\xef\xbf\xbd\xef\xbf\xbdQ\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\t\\x1aJJ\\x1b\xef\xbf\xbd\\x11\xef\xbf\xbd\xef\xbf\xbd\\rq\\x0c\\x11\xef\xbf\xbd\xef\xbf\xbdp\xef\xbf\xbdQ\\x10\\x18\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\\x14\xcd\x8b\xef\xbf\xbd\xef\xbf\xbd\\x0bus\xef\xbf\xbd\xef\xbf\xbde3X\xef\xbf\xbdw\xef\xbf\xbd\xe7\x8b\x94\xef\xbf\xbd\\x1d\xef\xbf\xbd\xef\xbf\xbd6\xef\xbf\xbdnwen\xef\xbf\xbd\\x02\\x08\xef\xbf\xbdJ\xef\xbf\xbdO\xef\xbf\xbd\xdf\xaf\xd7\xa3Q\xef\xbf\xbdT\\x0c\xef\xbf\xbdP\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd0\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd]]\xef\xbf\xbd\xef\xbf\xbdbI\xef\xbf\xbd\xef\xbf\xbd5\xef\xbf\xbd\xef\xbf\xbdEm/n\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdze\xef\xbf\xbdn.Wx\xef\xbf\xbd\xef\xbf\xbd(\\x05\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd+}\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd^\xef\xbf\xbd.qa\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdE\xef\xbf\xbdV\xef\xbf\xbde\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd}w}\xef\xbf\xbd\\x16\xef\xbf\xbdU]/\xef\xbf\xbd]-\xef\xbf\xbdd\xcd\x8b$\xe0\xa8\xa1\xef\xbf\xbda\xc4\x97up\xef\xbf\xbd\xef\xbf\xbdm\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdo\\x06'\nRun Code Online (Sandbox Code Playgroud)\n\n我猜测这是升级不安全请求的网站,但是我如何解密这些结果以接收像 Nike 一样的预期 html 代码?
\n\n注意:我通过 post 和 get 得到相同的结果。
\n我的文件中有以下行.sh:
aws s3 cp s3://bucket/folder/ /home/ec2-user/ --recursive
Run Code Online (Sandbox Code Playgroud)
当我在控制台中运行此行时,它运行良好并按预期完成。当我在文件内运行此行时.sh,该行返回以下错误。
Unknown options: --recursive
Run Code Online (Sandbox Code Playgroud)
这是我的完整.sh脚本。
echo "Test"
aws s3 cp s3://bucket/folder/ /home/ec2-user/ --recursive
echo "Test"
python /home/ec2-user/Run.py
Run Code Online (Sandbox Code Playgroud)
如果我手动添加 Run.py 文件(没有根据需要从 S3 复制它)并运行脚本,我会得到以下输出。
Test
Unknown options: --recursive
Test
Hello World
Run Code Online (Sandbox Code Playgroud)
如果我从 Linux 环境中删除预计由 S3 传输的文件并依赖 AWS S3 命令,我会得到以下输出:
Test
Unknown options: --recursive
Test
python: can't open file '/home/ec2-user/Run.py': [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
请注意,可以在指定的 S3 位置内传输多个文件。从控制台运行 AWS 命令时,所有这些文件都会按预期传输。
我最初认为这是一个行结束错误,因为我是.sh从 Windows 复制文件的。我已确保我的行结尾有效,并且我们通过脚本的其余部分按预期运行看到了这一点。因此,这个问题似乎与实际的 AWS 命令无关。如果我从通话中删除--recursive …
我正在尝试使用sklearn.LinearRegression查找大量短序列的对数斜率。数据是从熊猫数据框的行中提取的,如下所示:
bp01 1.12
bp02 1.12
bp03 1.08
bp04 0.99
bp05 1.08
bp06 1.19
bp07 1.17
bp08 1.05
bp09 0.8
bp10 0.96
bp11 0.97
bp12 1.12
bp13 0.91
bp14 0.96
bp15 1.05
bp16 0.93
bp17 0.97
bp18 0.92
bp19 0.89
bp20 0
Name: 42029, dtype: object
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用np.log10时,在该系列上出现以下错误:
In[27]: test.apply(np.log10)
Traceback (most recent call last):
File "<ipython-input-27-bccff3ed525b>", line 1, in <module>
test.apply(np.log10)
File "C:\location", line 2348, in apply
return f(self)
AttributeError: 'numpy.float64' object has no attribute 'log10'
Run Code Online (Sandbox Code Playgroud)
python ×6
pandas ×2
web-scraping ×2
amazon-ec2 ×1
amazon-s3 ×1
aws-cli ×1
encryption ×1
linux ×1
melt ×1
merge ×1
numpy ×1
python-3.x ×1
reformatting ×1