小编NFB*_*NFB的帖子

如何使用 hidutil 将密钥重新映射分配给特定设备

正如Apple 的这篇文章中所见,您可以从 OS Sierra 的命令行中使用以下内容重新映射密钥:

hidutil property --set '{"UserKeyMapping": 
  [{"HIDKeyboardModifierMappingSrc":0x700000054,
    "HIDKeyboardModifierMappingDst":0x700000067
  }]
}'
Run Code Online (Sandbox Code Playgroud)

是否可以仅将此更改分配给特定的键盘设备,例如,如果您想将一个设备映射到第二个的输出,但不影响第二个的功能?

该文章不再更新,并且似乎没有关于该命令如何工作的当前文档。

macos

9
推荐指数
1
解决办法
2724
查看次数

在网站的Google缓存上使用Scrapy

在"避免被禁止"标题下,Scrapy文档建议:

如果可能,请使用Google缓存来抓取网页,而不是直接点击网站

它是指http://www.googleguide.com/cached_pa​​ges.html,最近一次更新于2011年.

我试图这样做来刮一个网站,需要我无法绕过的验证码.但是,Google会创建同样的问题.

我使用这个中间件让蜘蛛留在Google缓存版本的链接上:

class GoogleCacheMiddleware(object):
    def process_request(self, request, spider):
    if spider.use_google_cache == True and 'googleusercontent' not in request.url:
        new_url = 'https://webcache.googleusercontent.com/search?q=cache:' + request.url
        request = request.replace(url=new_url)
        return request
Run Code Online (Sandbox Code Playgroud)

在蜘蛛本身,我使用以下设置礼貌地抓取:

custom_settings = {
    'AUTOTHROTTLE_ENABLE' :True,
    'CONCURRENT_REQUESTS' : 2, # or 1
    'DOWNLOAD_DELAY' : 8 # increased this to as much as 10
}
Run Code Online (Sandbox Code Playgroud)

我也尝试在原始网站和网站的Google缓存版本上使用Selenium.这有时会成功抓取几分钟并返回数据,但最终会登录https://support.google.com/websearch/answer/86640,其中指出Google会从您的计算机网络中检测到"异常流量",并且需要验证码继续进行.

看来Scrapy文档只是与Google的使用条款冲突,我是否正确?无论哪种方式,是否有推荐的方法来绕过验证码,或者尽管存在这种限制,仍然可以从网站的Google缓存中完成抓取?

更新,7-9-18:

当这个蜘蛛在一周或更长时间内运行几次时,它最终会产生完整或更全面的结果,显然是因为最初被抓取的URL在每次爬行时都会发生变化,并且在验证码开始之前就会成功.如果有人知道与文档一致的解决方案或者具体的解决方法.

python scrapy

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

在 Python 中删除前导/结尾和内部多个空格,但不删除制表符、换行符或返回字符

Python 删除字符串中的所有空格问题的答案显示了从 Python 中的字符串中分别删除前导/结尾、重复和所有空格的不同方法。但是 strip() 会删除制表符和换行符,而 lstrip() 只会影响前导空格。使用 .join(sentence.split()) 的解决方案似乎也删除了 Unicode 空白字符。

假设我有一个字符串,在本例中是使用 Scrapy 从网站上抓取的,如下所示:

['\n                        \n                    ',
         '\n                        ',
         'Some text',
         ' and some more text\n',
  ' and on another a line some more text', '
                ']
Run Code Online (Sandbox Code Playgroud)

当我在其他上下文中使用文本时,换行符会保留文本的格式,但所有额外的空间都很麻烦。如何删除所有前导、结尾和重复的内部空格,同时保留换行符(除了任何 \r 或 \t 字符,如果有的话)?

我想要的结果(在加入各个字符串之后)将是:

['\n\n\nSome text and some more text\nand on another line some more text']
Run Code Online (Sandbox Code Playgroud)

没有提供示例代码,因为到目前为止我所尝试的只是上面引用的页面上的建议,这得到了我试图避免的结果。

python whitespace scrapy

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

标签 统计

python ×2

scrapy ×2

macos ×1

whitespace ×1