前一篇带各位在 Selenium 中透过执行 JavaScript 语句达到向下卷动的效果。在每次爬取完成後都进行卷动更新载入的文章,并不重复爬取。
今天要带各位实战一个自动按好友贴文爱心的小爬虫。当我们直接进到 https://www.instagram.com/ 会发现要输入帐号密码。
在程序当中直接写入帐号密码有一些危险性(不小心 git push 上去),有两个解决方法,将帐号密码写在环境变数,并在程序中去读取环境变数。另一个解决方法是,将登入过後的使用者 session 撷取下来,并在程序运行中以 cookies 的方式带上去。
先使用 Edithiscookies 等工具将 cookies 上的使用者 session 汇出。
将使用者 session 导入至 selenium cookies 并重新整理。
不必输入帐号密码便可成功登入。
首先先写个简单的程序用 selenium 开启 instagram 网页。
会发现需要进行登入。
from selenium import webdriver
from time import sleep
import json
if __name__ == '__main__':
driver = webdriver.Chrome()
driver.get('https://www.instagram.com/')
我们可以到 https://www.instagram.com/ 进行登入,并用 cookies 修改的扩充套件将 cookies 汇出。
接下来将 cookies 贴上到一个 JSON 档,可以只留下 name 与 value 即可。
再来,在我们的程序中读取该 JSON 档案,并写个 for-loop 将 cookie 们加入 Selenium,注意要在加入完成後 refresh。
from selenium import webdriver
from time import sleep
import json
if __name__ == '__main__':
with open('cookies_jar.json') as f:
cookies = json.load(f)
driver = webdriver.Chrome()
driver.get('https://www.instagram.com/')
for cookie in cookies:
driver.add_cookie(cookie)
driver.refresh()
可以发现我们能够成功进行登入了。
今天透过加入使用者 session 至 Selenium 当中,达到不须输入使用者帐号密码进行登入的效果。此技巧可以用在许多应用程序的爬取上面,例如说 facebook Discord 等等需要登入的应用程序都可以透过这个技巧来达到不须输入使用者帐号密码进行登入。
明天会带各位加入自动点击 Instagram 中好友贴文赞的功能。
Instagram: https://www.instagram.com/
Selenium with Python docs : https://selenium-python.readthedocs.io/
Selenium docs : https://readthedocs.org/projects/selenium-python/downloads/pdf/latest/
首先,我们可以先拉一下底层的image,再把我们的app内容叠上去,从终端机(cmd)打上: doc...
AFE 特徵是由欧洲电信标准协会所提出的。 AFE 论文参考连结: https://www.etsi...
前言 在开始写 Android 之前,想先介绍如何提升写 code 的速度, 如果从现在开始习惯,并...
懒人包 此篇做个重点整理,原先是要写在EKS上操作EFS,但最近在测试发生一些问题,原先在七月的时候...
在前一篇把 line message api 缺点和难用的地方写出来後,其实也在找其他的替代品,有...