python通过帐号登陆网站下载文件_爬取网站要登录?46行代码解决问题,python爬虫随心所欲!...

世界那么大,谢谢你来看我!!关注我你就是个网络、电脑、手机小达人

当你在爬某些网站的时候,需要你登录才可以获取数据,咋整?莫慌,把这几招传授给你,让你以后随心所欲的爬!

一:Cookie大法

你平常网站浏览的时候,是不是发现你只要登录一次,就可以一直看到你想要的内容,过了一阵子才需要再次登录?其实每个使用这个网站的人,服务器都会给他一个 Cookie,下次你再请求数据的时候,顺带把这个 Cookie 传过去,服务器一看,有登录过,直接返回数据给他吧!

在服务中还可以设置 Cookie 的有效时间,也就是说,当你下次携带一个过期了的 Cookie 给服务器的时候,虽然知道你是老客户,但是还是需要你重新再登录一次,然后再给你一个有效的 Cookie,Cookie 的时长周期是服务器那边定的。

了解了这一点之后,我们就来正式解决问题吧!我们以“逼乎”为例:

输入地址之后,按一下 F12,点击 network 标签,然后登录你的帐号,然后点击其中一个,你就可以看到在 Request Headers 有你的 Cookie

有了 Cookie 之后,我们在代码中直接获取我的个人信息。

1 import requests

2 headers = {

3 # 假装自己是浏览器

4 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36',

5 # 把你刚刚拿到的Cookie塞进来

6 'Cookie': 'eda38d470a662ef3606390ac3b84b86f9; Hm_lvt_f1d3b035c559e31c390733e79e080736=1553503899; biihu__user_login=omvZVatKKSlcXbJGmXXew9BmqediJ4lzNoYGzLQjTR%2Fjw1wOz3o4lIacanmcNncX1PsRne5tXpE9r1sqrkdhAYQrugGVfaBICYp8BAQ7yBKnMpAwicq7pZgQ2pg38ZzFyEZVUvOvFHYj3cChZFEWqQ%3D%3D; Hm_lpvt_f1d3b035c559e31c390733e79e080736=1553505597',

7 }

8 session = requests.Session()

9 response = session.get('https://biihu.cc/people/wistbean%E7%9C%9F%E7%89%B9%E4%B9%88%E5%B8%85', headers=headers)

10 print(response.text)

运行后可以发现不用登录就可以直接拿到自己的个人信息了

1

2

3

4

5

6

7

8

小帅b真TM帅 的个人主页 - 逼乎

9

10

11

12

13

14

15

16

17

18

19

20 var _02AEC94D5CA08B39FC0E1F7CC220F9B4="a5359326797de302bfc9aa6302c001b8";

21 var G_POST_HASH=_02AEC94D5CA08B39FC0E1F7CC220F9B4;

22 var G_INDEX_SCRIPT = "";

23 var G_SITE_NAME = "逼乎";

24 var G_BASE_URL = "https://biihu.cc";

25 var G_STATIC_URL = "https://biihu.cc/static";

26 var G_UPLOAD_URL = "/uploads";

27 var G_USER_ID = "188";

28 var G_USER_NAME = "666";

29 var G_UPLOAD_ENABLE = "Y";

30 var G_UNREAD_NOTIFICATION = 0;

31 var G_NOTIFICATION_INTERVAL = 100000;

32 var G_CAN_CREATE_TOPIC = "1";

33 var G_ADVANCED_EDITOR_ENABLE = "Y";

34 var FILE_TYPES = "jpg,jpeg,png,gif,zip,doc,docx,rar,pdf,psd";

35

36

除此之外还有一个方法

二:Selenium 自动登录法

获取到两个输入框的元素,再获取到登录按钮,往输入框写你的帐号密码,然后自动点击一下登录

username = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "帐号的selector")))

password = WAIT.until(EC.presence_of_element_located((By.CSS_SELECTOR, "密码的selector")))

submit = WAIT.until(EC.element_to_be_clickable((By.XPATH, '按钮的xpath')))

username.send_keys('你的帐号')

password.send_keys('你的密码')

submit.click()

登录完之后拿到 Cookie

1 cookies = webdriver.get_cookies()

有了 Cookie 你就可以拿到你想要的数据了,以上就是本文的全部内容,希望对大家的学习有所帮助,觉得文章还可以的话不妨收藏起来慢慢看,有任何意见或者看法欢迎大家评论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值