楼主: 我的素质低
2411 2

[Python] 〖移花接木〗Python 爬虫解决登录问题的另类方法 [推广有奖]

学术权威

83%

还不是VIP/贵宾

-

TA的文库  其他...

〖素质文库〗

结构方程模型

考研资料库

威望
8
论坛币
23388 个
通用积分
28302.4104
学术水平
2705 点
热心指数
2881 点
信用等级
2398 点
经验
223743 点
帖子
2977
精华
52
在线时间
2175 小时
注册时间
2012-11-24
最后登录
2024-1-13

一级伯乐勋章 初级学术勋章 初级热心勋章 初级信用勋章 中级热心勋章 中级学术勋章 中级信用勋章 高级学术勋章 高级热心勋章 高级信用勋章 特级学术勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

    爬虫爬网站不免遇到需要登录的问题. 登录的时候可能还会碰到需要填验证码的问题, 有的验证码甚至是拖动拼图来完成的.


     虽然现在这些都有开源解决方案, 但是假设现在只是自己做个小小的不具规模的爬虫来玩一玩; 或者主要的精力想要放在如何解析 html, 或者验证抓取算法上, 而不是通过登录验证上, 那么开源解决方案并不是最好的解决方案.



     更好的方案是获取浏览器的 Cookies, 然后让 requests 这个库来直接使用登录好的 Cookies.


       下面给出一个 get_chrome_cookies(url) 函数, 可以获取 Chrome 浏览器的 Cookies 信息. 程序在 Windows 下调试通过, 因为 C 盘需要特殊权限来读写文件, 因此程序先将 Cookies 数据库文件拷贝到 D 盘.



        该方法用到了第三方库 win32crypt.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

  1. import sqlite3
  2. import win32crypt
  3. import os

  4. def get_chrome_cookies(url):
  5.     os.system(‘copy “C:\\Users\\Liu\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Cookies” D:\\python-chrome-cookies’)
  6.     conn = sqlite3.connect(“d:\\python-chrome-cookies”)
  7.     ret_list = []
  8.     ret_dict = {}
  9.     for row in conn.execute(“select host_key, name, path, value, encrypted_value from cookies”):
  10.         if row[0] != url:
  11.             continue
  12.         ret = win32crypt.CryptUnprotectData(row[4], None, None, None, 0)
  13.         ret_list.append((row[1], ret[1]))
  14.         ret_dict[row[1]] = ret[1].decode()
  15.     conn.close()
  16.     os.system(‘del “D:\\python-chrome-cookies”‘)
  17.     return ret_dict
复制代码







使用方法:

  1. x = requests.get(url, cookies = get_chrome_cookies(domain))
复制代码


文章出处: Jecvay Notes

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 移花接木 win32crypt continue cookies 另类 爬虫 win32crypt get_chrome_cookies

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 100 + 100 + 5 + 5 + 5 精彩帖子
Nicolle + 20 + 5 + 5 精彩帖子

总评分: 经验 + 120  论坛币 + 100  学术水平 + 10  热心指数 + 10  信用等级 + 5   查看全部评分

本帖被以下文库推荐

心晴的时候,雨也是晴;心雨的时候,晴也是雨!
扣扣:407117636,欢迎一块儿吐槽!!
沙发
mike68097 发表于 2015-3-25 23:12:10 |只看作者 |坛友微信交流群

使用道具

藤椅
niuniuyiwan 在职认证  发表于 2015-10-15 13:16:46 |只看作者 |坛友微信交流群
好帖,感谢分享。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-3 01:59