鱼C论坛

 找回密码
 立即注册
查看: 2216|回复: 8

求大佬解答学习python爬虫在浏览器审查元素怎么找到自己需要的东西

[复制链接]
发表于 2020-11-27 22:17:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我现在正在学习post请求,比如我要用post请求登陆豆瓣,那么我怎么才能找到登陆的那个网页呢,我在network里面找到的我以为是登陆链接的链接,结果不是的,我需要怎么才能找到呢 22.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-27 23:23:55 | 显示全部楼层
不就是这个么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-28 08:43:25 | 显示全部楼层
braga 发表于 2020-11-27 23:23
不就是这个么?

不是这个,我用post请求登录的时候输出的就是一个只有4个元素的字典
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-28 10:29:22 | 显示全部楼层
本帖最后由 suchocolate 于 2020-11-28 10:33 编辑

得加cookie,cookie是js算出来的,不好逆向,就拿着浏览器的直接用吧。

  1. import requests


  2. def main():
  3.     url = 'https://accounts.douban.com/j/mobile/login/basic'
  4.     headers = {'user-agent': 'firefox',
  5.                'Cookie': 'll="118160"; bid=_JeiWjN-RWw; apiKey=; '
  6.                          '__utma=30149280.998917971.1606530029.1606530029.1606530029.1; '
  7.                          '__utmb=30149280.1.10.1606530029; __utmc=30149280; __utmz=30149280.1606530029.1.1.utmcsr=('
  8.                          'direct)|utmccn=(direct)|utmcmd=(none); __utmt=1'}
  9.     data = {'ck': '', 'remember': 'true', 'name': '账户', 'password': '密码'}
  10.     r = requests.post(url, headers=headers, data=data)
  11.     print(r.json()['status'])


  12. if __name__ == '__main__':
  13.     main()
复制代码
Screenshot 2020-11-28 102531.png
另外豆瓣限制反复登陆,最好图形验证码验证和账号被限制的准备。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-28 15:53:43 | 显示全部楼层
18508410033 发表于 2020-11-28 08:43
不是这个,我用post请求登录的时候输出的就是一个只有4个元素的字典

返回的就是个json 结构呀 然后不有成功与否的标志么,用session 自动存上cookie 就可以保证登陆状态了呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-28 15:56:06 | 显示全部楼层
suchocolate 发表于 2020-11-28 10:29
得加cookie,cookie是js算出来的,不好逆向,就拿着浏览器的直接用吧。
另外豆瓣限制反复登陆,最好图形验 ...

我依稀记得好像先用session 登陆一下那个登陆页面的网址 再发这个post请求就可以啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-28 17:09:01 | 显示全部楼层
本帖最后由 suchocolate 于 2020-11-30 20:13 编辑
braga 发表于 2020-11-28 15:56
我依稀记得好像先用session 登陆一下那个登陆页面的网址 再发这个post请求就可以啦


保持session的靠的就是获取并保持cookie
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-24 10:24:05 | 显示全部楼层
suchocolate 发表于 2020-11-28 17:09
保持session的靠的就是获取并保持cookie

现在才看懂你们说的,我这么操作会弹出图形验证码,要怎么要来手动输入图形验证码呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-24 11:41:10 | 显示全部楼层
18508410033 发表于 2021-1-24 10:24
现在才看懂你们说的,我这么操作会弹出图形验证码,要怎么要来手动输入图形验证码呢

requests没有手工输入的机制,得用selenium模拟浏览器行为才行。
另外如果想自动识别验证码,简单的用tesserocr识别,复杂的可能得找第三方付费识别。
https://github.com/Python3WebSpider/Python3WebSpider
上面的第7章讲模拟浏览器,里面有自动输入,你可以在找到元素的时候暂停,然后手工输入,再让程序运行,就算手工输入了。
第8章有讲如何识别验证码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-23 00:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表