cookie:
本文以登录的自己的 知乎 为例,找到当前的cookie信息,然后让浏览器带着自己的cookie信息去访问 网址:知乎
在goole浏览器下面 Ctrl+shift+J (F12)打开console工作台->application->cookie里面找到登录以后的cookie信息 将他写到你的浏览器里面就可以了!
import io import sys # 改变标准输出的默认编码(改变中文输出的乱码问题) sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding= ' utf8 ' ) # 导入selenium的浏览器驱动接口 from selenium import webdriver from time import sleep driver = webdriver.Chrome( " C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe " ) # 加载知乎主页,查看快照知此时处于未登录状态 driver.get( " https://www.zhihu.com " ) sleep( 1 ) print (driver.save_screenshot( " zhihu_nocookies.png " )) # 操作浏览器登录知乎并抓包cookies zhihu_cookies = { # 第一个cookie信息不要,注释掉 # '_xsrf':' 4Aehy9uAVpUQwh63ft2lgIFMZSwlqGs7', ' _zap ' : ' 047801d6-2a5c-490d-89eb-14c27fed8f63 ' , ' capsion_ticket ' : " 2|1:0|10:1568897272|14:capsion_ticket|44:NDA4MmQwZjI1MGVmNGI2OGIwMzdjODViYTdmZDhjMWI=|b491fbdbb7c4a73a344512fabd38111217ff6846d10c831a266fd0a0119856a2 " , ' d_c0 ' : " ANCi2eDKEw-PTp0vSECsR7vX7XcdN1VL5b4=|1551806289 " , ' q_c1 ' : ' ee90e06b16e049d2b6395ae23eb3328d|1551806291000|1551806291000 ' , ' tgw_l7_route ' : ' 060f637cd101836814f6c53316f73463 ' , ' tgw_l7_route ' : ' 18884ea8e9aef06cacc0556da5cb4bf1 ' , ' tgw_l7_route ' : ' 060f637cd101836814f6c53316f73463 ' , ' tst ' : ' r ' , ' z_c0 ' : " 2|1:0|10:1568897286|4:z_c0|92:Mi4xemNkekNRQUFBQUFBMEtMWjRNb1REeVlBQUFCZ0FsVk5Cc2R3WGdBalhkbVNieHZUY3dLMTA0RlFHVFBiNjh5RjFR|c90ecb48ce8d612f537305315f543bcdf43d0ad588d28618896faacd085f11fd " , } # 将用户登录产生的cookies全部添加到当前会话 for k, v in zhihu_cookies.items(): driver.add_cookie({ ' domain ' : ' .zhihu.com ' , ' name ' : k, ' value ' : v}) # 再次访问知乎主页并拍照,此时已经是登录状态了 driver.get( " https://www.zhihu.com " ) sleep( 3 ) print (driver.save_screenshot( " zhihu_cookies.png " ))
#模拟滚动条的滚动(这个用常规的爬虫很难实现)
# 加载知乎主页
# 将页面滚动到最后,执行多次
for i in range(3):
js = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
sleep(3)
# 截图并退出,页面侧边滚动条已经下滑了许多像素
print(driver.save_screenshot("zhihu_scroll.png"))
# 退出浏览器 driver.quit()