小编Wol*_*Ves的帖子

Python - 从当前浏览器处理和读取浏览器

我正在努力在python中找到一个方法,它允许你在当前使用的Web浏览器中读取数据.实际上,我正在尝试在本地控制的公司网页上下载大量数据框,并将其实施到数据框中.问题是该网站有一个相当复杂的身份验证令牌进程,我无法使用各种用户参数使用大量的webdrivers,Requests,urllib和cookielib来绕过Selenium.我完全放弃了这个方面,因为我几乎肯定认证过程比使用这些库容易实现的更多.

但是,当我在使用WebBrowser登录的当前浏览器中快速测试打开新选项卡时,我确实设法绕过了所需的标记化过程.传统上,WebBrowser不提供读取功能,这意味着即使页面可以打开,页面上的数据也无法读入pandas数据帧.这让我觉得我可以使用Win32com,打开一个浏览器,登录,然后运行其余的脚本,但是再次,没有一般的读取能力的Internet Explorer探测意味着我无法发送我想要的信息pandas .我很难过.有任何想法吗?

我可以获得必要的身份验证令牌脚本,但我确信在这方面发生任何事情之前需要一到两周的时间.我宁愿在等待公司的实际auth脚本的同时得到一些东西.

更新:我从公司收到了身份验证令牌,但它需要在另一台我无法访问的服务器上使用python包,主要是因为我在我的部门使用Python很奇怪.因此,上述仍然适用 - 需要一种用于读取和操作打开的浏览器的方法.

python authentication web-scraping

11
推荐指数
1
解决办法
1303
查看次数

如何创建一个给定3列的方形数据框/矩阵 - 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的强制转换功能的东西可以更快地做到这一点?

python reformatting pandas

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

子串上的熔化和合并 - Python 和 Pandas

我有数据,其中有类似的数据

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 merge melt pandas

3
推荐指数
1
解决办法
1814
查看次数

为什么Python中~True = -2?

我完全困惑了。我们遇到了一个错误,我们很容易修复了它,但我们很困惑为什么错误生成的值会创建它所做的输出。具体来说:

为什么Python中~True等于?-2

~True 
>> -2 
Run Code Online (Sandbox Code Playgroud)

按位运算符不应该~只返回二进制吗?

(Python v3.8)

python python-3.x

3
推荐指数
1
解决办法
143
查看次数

Python 抓取并读取带有请求的加密返回值

我正在抓取一些网站的数据。许多网站我抓取完全没有问题,但有几个网站返回加密数据。我在下面创建了一个基本演示来说明正在发生的事情。有没有办法解密返回的结果?

\n\n
headers_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\n
Run 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'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我猜测这是升级不安全请求的网站,但是我如何解密这些结果以接收像 Nike 一样的预期 html 代码?

\n\n

注意:我通过 post 和 get 得到相同的结果。

\n

python encryption web-scraping python-requests

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

AWS CLI S3 CP --递归函数在控制台中有效,但在 .sh 文件中无效

我的文件中有以下行.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 …

linux amazon-s3 amazon-ec2 amazon-web-services aws-cli

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

AttributeError:“ numpy.float64”对象没有属性“ log10”

我正在尝试使用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)

我不确定为什么会出现此错误,根据我所看到的,np.log10是否可以与numpy.float64一起使用。有想法吗?

python numpy

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