V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ClericPy  ›  全部回复第 76 页 / 共 134 页
回复总数  2663
1 ... 72  73  74  75  76  77  78  79  80  81 ... 134  
2020-04-29 09:34:43 +08:00
回复了 zhengfan2016 创建的主题 Python 有人研究过虎嗅的文章接口吗?
这年头学爬虫也要学后端的

这个接口看起来就是处理 offset 过大导致检索效率变低的问题, 常见套路一个是通过只查 id 的嵌套子查询来过滤; 另一个就是不使用 offset, 对连续文档列表的情况借助 last id 的方式. 后者复杂度更低一点
2020-04-29 09:31:35 +08:00
回复了 yuanse 创建的主题 问与答 Python 是哪种类型语言
@yuanse #9 在 V2EX 这种地方都有看到说它弱类型的, 心里有数就行了, 我都懒得和那群人争辩了...
2020-04-29 09:20:49 +08:00
回复了 yuanse 创建的主题 问与答 Python 是哪种类型语言
随手一搜到处都是
为什么说 Python 是强类型语言? - 知乎 - https://www.zhihu.com/question/43498005
2020-04-26 22:14:40 +08:00
回复了 yinuxy 创建的主题 Python Python 打包成应用程序
chromedriver 把文件目录那套搞明白就没什么了吧... 有什么区别么

看到后半句...
2020-04-26 17:09:13 +08:00
回复了 zhang14964 创建的主题 程序员 怎么看待工作量化
如果有一个算法能识别各种语言代码的信息熵就好了, 至少比某某大公司平均每人每年多少行代码要有用的多...
2020-04-26 10:35:06 +08:00
回复了 Flash1 创建的主题 Python win10 运行 pyw 文件后,怎么打开控制台窗口查看输出
![Snipaste_2020-04-26_10-33-25.png]( https://i.loli.net/2020/04/26/lyedTbNh12FRK8D.png)
2020-04-26 10:03:23 +08:00
回复了 FreshOldMan 创建的主题 问与答 有没有一个 app 闹钟可以直接设定每个工作日的闹钟的
以前用的小米的闹钟, 选的工作日, 然后... 周六上班没响.........
2020-04-26 00:23:11 +08:00
回复了 duality 创建的主题 问与答 求适合和父母吃饭时候一起看的视频/电影/纪录片
囧妈刚出的时候, 用电视看的, 结果我妈每首歌都会唱, 我爹看的快睡着了...
2020-04-25 12:36:12 +08:00
回复了 Flash1 创建的主题 Python win10 运行 pyw 文件后,怎么打开控制台窗口查看输出
别双击, 在命令行里 python xxx.pyw 就行了吧...
不提 NFA DFA 什么的... 你这复杂度明显还是看自己表达式写的问题吧, 有些语法复杂度确实格外大开销就大...

至于要做 2500 次正则, 这需求层面没有可以优化的了么, 如果是匹配关键词走 AC 自动机更快点; 如果是匹配 url 可以先按 host 做好 map; 其他需求也有其他的解耦

至于前面的说提前 compile, 之前倒是看到 Python 的 re 是有缓存的, 是否预编译差距不该这么大, 打上 log 看看是不是查库那边的 IO 开销
2020-04-24 19:57:26 +08:00
回复了 ClericPy 创建的主题 问与答 微软 To Do 导入 todoist 的功能是下线了么
@wangzp0303 #1 你说的是 wunderlist
2020-04-24 16:54:21 +08:00
回复了 zhuwd 创建的主题 程序员 V 友们有没有防止灰产爬虫的方法?
反爬虫就像 CSGO 的反作弊, 只要是免费的, 就有一群人本着 "学习" 的目的来尝试, 每次进游戏看到一群小号就烦
2020-04-24 15:04:09 +08:00
回复了 PlanZ 创建的主题 推广 GeekHub 上线公测,欢迎来玩。第一波活动送出两个 AirPods 2 ...
如果整个网站在 Q 外就好了... 有些人还是隔离起来比较放心, 来逛 V2 很大程度也是这里曾经也是净土
2020-04-24 09:59:36 +08:00
回复了 ByteCat 创建的主题 Python Python 爬虫如何爬取动态网页数据?
@uti6770werty #15

几个问题简单回答下:

1. 代理池可以考虑使用 pacfile 的方式 "--proxy-pac-url", 但是 pac 模式不支持 Headless, 所以这个不可取; Chrome 本身不是为爬虫准备的, 所以挂代理这方面想动态的话, 我这边用的有两种方案: 一种是在 upstream 网关那层做负载均衡来不断变换动态 IP(比如用稍微专业点的代理工具, 当时用的 cow 忘了带不带这功能了) 使所有请求挂同一个代理, 该代理则负责负载均衡

2. cdp 起一个守护进程就可以了, 也就是在执行 Chrome 的时候带上 "--remote-debugging-port" 参数, 它内部就启动了一个 http/ws 服务方便调试, 挂代理也就是 "--proxy-server" 这个参数负责, 每个代理启动一个进程其实开销不算太大, 注意下同一个 host 只能建立 6 个连接那个点就好了

3. 想只启动一个 chrome 实例, 用 IP 池轮询的话, 目前没有原生的实现, 要么借助 chrome 扩展, 要么像 1 里说的挂一个动态代理. 如果找到更好的方法, 求告知...

至于 E 文不太好... 其实你看不懂的英文很大几率是写英文的那人语法不行, 一般好的文档单词都是言简意赅的...

可以参考下 [深入浅出 CDP (Chrome DevTools Protocol) - Clericpy's Blog]( https://clericpy.github.io/blog/posts/20200114151137/)
2020-04-23 21:26:28 +08:00
回复了 fangwenxue 创建的主题 问与答 requests header cookie
@fangwenxue #3 怀疑是服务端不认啊...

用 httpbin 写的最小测试代码

```python
# -*- coding: utf-8 -*-

import requests

r = requests.get('http://httpbin.org/get', cookies={'abc': '1'})
print(r.json())
# {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Cookie': 'abc=1', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.23.0', 'X-Amzn-Trace-Id': 'Root=1-5ea196fd-2ad50b072b6c252274cf4b3c'}, 'origin': '119.181.173.152', 'url': 'http://httpbin.org/get'}
r = requests.get('http://httpbin.org/get', headers={'Cookie': 'abc=1'})
print(r.json())
# {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Cookie': 'abc=1', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.23.0', 'X-Amzn-Trace-Id': 'Root=1-5ea19718-fd0b6b6acd989d0e3af1604a'}, 'origin': '119.181.173.152', 'url': 'http://httpbin.org/get'}
```
2020-04-23 20:53:50 +08:00
回复了 fangwenxue 创建的主题 问与答 requests header cookie
代码这是删了很多关键东西啊...

把最小测试代码发上来不好么, 反正有 httpbin

就目前所看到的来说, 我正常使用不会用 setdefault, 而是直接 kwargs['headers'] = self.headers

毕竟我也不知道你的 kwargs 是哪儿创建的
2020-04-23 20:31:26 +08:00
回复了 ByteCat 创建的主题 Python Python 爬虫如何爬取动态网页数据?
@uti6770werty #13 cdp 就是官方提供了一套 API 协议, 可以遵循它的方式 (HTTP / Websocket) 通过 debug port 调试通过调试模式启动的 Blink 内核的浏览器 (Chrome chronium 什么的), 调试的权限基本都集中在平时咱们用的 Devtools 里面那些

你这么理解不算偏, 其实就是给用户开放了个接口控制 Devtools, 熟悉 JS 的话更方便一些, 有时候我还朝 tab 里注入 jQuery vue.js 什么的乱七八糟的.

CDP 文档: https://chromedevtools.github.io/devtools-protocol/

看一眼文档就大致知道了, https://github.com/ClericPy/ichrome 之前自己摸索的时候也写成了代码, 可以稍微看一下 Tab 的部分就明白了, 建立 Devtools 的 ws, 对它 send 指令或者 recv 事件或消息. 实际使用时候最操心的反而是并发控制和僵尸进程的问题更多一点...
2020-04-23 19:49:46 +08:00
回复了 JCZ2MkKb5S8ZX9pq 创建的主题 问与答 Windows 有快速息屏的快捷键吗?
以前用的 autohotkey 写的 lock, 鼠标一动就得输入密码, 不输入就继续黑屏. 忘了密码就 ctrl alt del 找到那个 exe 杀死就行了... 后来感觉没什么用就没继续用下去... 因为笔记本合上盖子我这默认就是无操作... 至于合上盖子用独立显示器... 直接用手关显示器.........
2020-04-23 16:17:16 +08:00
回复了 toboy 创建的主题 问与答 中年男人的心态,你对了几条?? zz
这标题... 有内味了
2020-04-23 15:40:02 +08:00
回复了 ByteCat 创建的主题 Python Python 爬虫如何爬取动态网页数据?
一般浏览器打开 Devtools 抓包就够了吧...

至于现在很多人推 Selenium 是因为他们看的教程只提到了这个, 实际上多数情况用 Google 原生的 cdp (HTTP+Websocket) 就够了, Puppeteer 有个 Python 版叫 pyppeteer 就是操作 cdp 的, 功能和 selenium 比只局限在 Devtools 层面, 但是有 js 已经足够了, 平时爬虫来说根本用不到 selenium 更底层的 driver 层面接口

当然, 更无脑的用法也可以 --dump-dom, 反正我是习惯 cdp 了, 自己把接口写写套上就能用
1 ... 72  73  74  75  76  77  78  79  80  81 ... 134  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1992 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 11:51 · PVG 19:51 · LAX 03:51 · JFK 06:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.