admin管理员组

文章数量:1538487

此文转自:https://zhuanlan.zhihu/p/28587931 转录只是为了方便学习,感谢他的分享

Python模拟登陆让不少人伤透脑筋,今天奉上一种万能登陆方法。你无须精通HTML,甚至也无须精通Python,但却能让你成功的进行模拟登陆。本文讲的是登陆所有网站的一种方法,并不局限于微博与知乎,仅用其作为例子来讲解。

用到的库有“selenium”和“requests”。通过selenium进行模拟登陆,然后将Cookies传入requests,最终用requests进行网站的抓取。优点就是不但规避了“selenium”其本身抓取速度慢的问题(因为仅仅用其作为登陆),又规避了利用requests登陆时需要制作繁琐的Cookies的过程(因为是从selenium直接拿来cookies)。文章前面列出了步骤与代码,后面补充了登陆微博与知乎的实例。

文章最后给出了一个懒人的方法。想要走捷径的朋友直接看第四部知乎登陆。该方法适用于登陆所有网站,仅用知乎作为实例以方便讲解。

------------开始---------

需要材料:1.自己喜欢的webdriver (必须) 2.Anaconda(可选)。selenium是借助浏览器而运行的,因此需要额外下载一款小型浏览器。Anaconda推荐大家也去下载一个,它里面包含了众多python的库,用起来很方便,而且免费!友情链接:1.谷歌 Web Driver下载 2. Anaconda下载

第一部:利用selenium登陆

导入selenium库

from selenium import webdriver

明确模拟浏览器在电脑中存放的位置,比如我存在了D盘

chromePath = r‘D:\Python Program\chromedriver.exe‘

用selenium的webdriver方程指明浏览器的路径,同时打开一个浏览器。模拟浏览器有多种可选,比如Firefox, Safari。本次用的是谷歌的模拟浏览器。注意:‘.Chome‘是大写字母。

wd = webdriver.Chrome(executable_path= chromePath)

让webdriver为你填写用户名和密码

wd.find_element_by_xpath(‘用户名选项卡位置‘).

本文标签: 网站Python