woshichuanqilz 最近的时间轴更新
woshichuanqilz

woshichuanqilz

V2EX 第 139700 号会员,加入于 2015-09-24 16:24:49 +08:00
求一个类似的计算机室管理的软件
计算机  •  woshichuanqilz  •  15 天前  •  最后回复来自 yujiang
2
腾讯云 ubuntu 如何配置 v2RAY desktop 客户端?
Chamber  •  woshichuanqilz  •  19 天前  •  最后回复来自 yuanmomo
2
cpp 有什么简洁的方案可以时间 http 请求吗?
C++  •  woshichuanqilz  •  65 天前  •  最后回复来自 stirlingx
115
Python 生成器的问题
Python  •  woshichuanqilz  •  115 天前  •  最后回复来自 shendun
14
硬币种类的算法题 主要思路是怎么样的?
算法  •  woshichuanqilz  •  141 天前  •  最后回复来自 xydcz6
2
woshichuanqilz 最近回复了
@eason1874 那怎么搞出来 gif 我 github 上如果放 raw gif 显示没问题
自己写了一个, 那个 60 那里是最大页数酌情修改

from selenium import webdriver
import datetime
import pandas as pd
import time

options = webdriver.ChromeOptions()
options.add_argument('--ignore-ssl-errors=yes')
options.add_argument('--ignore-certificate-errors')
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)

xpath_items = "//*[@class='CollectionDetailPageItem-innerContainer']"
xpath_title = ".//h2"
xpath_readAll = ".//button[text()='阅读全文']"
xpath_content = ".//div[@class='RichContent']"
xpath_content = ".//div[@class='RichContent-inner']"
xpath_next_page = "//button[text()='下一页']"

result_list = list()
count = 0
for i in range(1, 60):
driver.get("https://www.zhihu.com/collection/{收藏夹编号}?page={}".format(i))
time.sleep(3)
elems = driver.find_elements_by_xpath(xpath_items)
for item in elems:
count += 1
try:
title = item.find_element_by_xpath(xpath_title).text
item.find_element_by_xpath(xpath_readAll).click()
content = item.find_element_by_xpath(xpath_content).get_attribute('outerHTML')
result_list.append({'title': title, 'content': content})
except:
pass
df = pd.DataFrame(result_list)
df.to_excel('res.xlsx', index=False)


df = pd.DataFrame(result_list)
df.to_excel('res.xlsx', index=False)
input("please wait...")
@bickman 请教一下我的目的是少按一个键, 是哪里违背了 vim 的基本思想, 按你的说法你的 vimrc 里面的 key remap 好像都违背 vim 的基本思想了
@matrix67 这是找到地一个 i 字母没有进入 insert mode
@jdhao 就比如是定位当前坐标向右第一个, 定义第二个可以用 2fx 来做

我的意思是能不能对 f 这个功能做一个简单的扩展
我是一点没听过, 这个真不知道咋做老师发的课件里面例题没有差不多的, 200 块钱是知道大家时间都比较贵, 少了不好意思求助, 要是真的简单我就在找个教程看看。。。
行我先看看, 不行再说
拜托了, 钱大概就这么多了
谢谢 这个文件确实是错的了, 复制一个 libc-2.xx.so 就好了 谢谢
2020-10-25 11:12:24 +08:00
回复了 woshichuanqilz 创建的主题 Python Chrome 如何快速获取 request header?
解决了谢谢各位的帮助, 主要参考的是 @Cleric 的思路, 我用了 pychrome

基本代码在这里比较粗糙

```
import pychrome
from urllib.parse import urlparse
import subprocess, signal
import os
import time


def killprocess(pname):
p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE)
out, err = p.communicate()
for line in out.splitlines():
pinfo = line.decode().lower()
if pname in pinfo:
pid = int(line.split(None, 1)[0])
os.kill(pid, signal.SIGKILL)

header = dict()
url = "https://www.dogedoge.com"
if not url.endswith('/'):
url += '/'
domain = urlparse(url).netloc
killprocess('chrome')
cmd = 'google-chrome-stable --remote-debugging-port=9222'
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
time.sleep(3)

# 创建一个浏览器实例
browser = pychrome.Browser(url="http://127.0.0.1:9222")

# 新建一个页签
tab = browser.new_tab()


# 需要注册的回调函数
def request_will_be_sent(**kwargs):
if url == kwargs.get('request').get('url'):
header = kwargs.get('request').get('headers')
return


tab.Network.requestWillBeSent = request_will_be_sent

# 开始接收消息, requestWillBeSent 事件发生时被注册的回调函数也可以执行
tab.start()

# 调用方法
tab.Network.enable()

# 调用方法并设置超时时间
tab.Page.navigate(url=url, _timeout=5)
input()
# 等待页面加载
tab.wait(5)

# 停止处理事件, 停止从 chrome 接收消息
tab.stop()

# 关闭页签
browser.close_tab(tab)

```
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1713 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 17:05 · PVG 01:05 · LAX 10:05 · JFK 13:05
♥ Do have faith in what you're doing.