作者liquidbox (树枝摆摆)
看板Python
标题[问题] 以requests登入网站
时间Mon Jul 1 17:37:04 2019
我遇到一个网站,一进入就会prompt,提醒需要输入帐密,
我可以用selenium连上
https://username:[email protected],
并取得我想要爬取的资料
但selenium实在太慢了,所以我想回归原本使用requests+lxml,
却无法使用
https://username:[email protected] 的方式登入,
会一直引发ConnectionError(err, request=request)
我想试着用requests.get(url,auth=(username,password))
也一样会引发ConnectionError
想请问像这类的网站是否可直接利用requests登入?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.111.96 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1561973826.A.9F5.html
1F:→ TakiDog: 当然可以 07/01 20:09
2F:→ s860134: 因为没有具体范例 无法给建议 07/01 23:46
3F:→ liquidbox: 了解,谢谢 07/02 06:54
4F:→ coeric: 一个网站.....到底哪一个网站 这是请鬼拿药单吗? 07/02 10:22
5F:→ TakiDog: 这大概basic auth才会出现的连线方式,我也回当然可以, 07/02 16:21
6F:→ TakiDog: 也不算资讯不足啦 07/02 16:21
谢谢分享,我单纯认为,
也许requests针对
https://username:password@host会有通用的处理方法
加上网站不便提供,所以没办法进一步清楚
结果跟爬虫怎麽爬一样,这件事得见招拆招,证实这件事比我原先想的更复杂
先前试了网路上几种方法都没能成功,只好等日後技能点齐一点再来想办法
但我还是学到了requests有解,但我功力不够这件事,
至少方向出来了,谢谢分享
※ 编辑: liquidbox (61.230.111.96 台湾), 07/02/2019 17:51:48
7F:推 ssivart: 用 selenium 发的请求是会带浏览器 header 跟 cookie 或 07/04 00:36
8F:→ ssivart: 有些表单需要的 csrf token等等 所以可以成功 建议你可 07/04 00:36
9F:→ ssivart: 以观察登入时带了哪些参数 以及开f12看登入方式是走 pos 07/04 00:36
10F:→ ssivart: t back 还是 jwt或其他 都了解清楚後再想办法用 request 07/04 00:36
11F:→ ssivart: 模拟 07/04 00:36
12F:→ ssivart: 另外登入通常是用 HTTP POST 不是 GET 07/04 00:37
原来如此,谢谢详细说明,
我从这个方向去试试看,谢谢
※ 编辑: liquidbox (36.224.143.114 台湾), 07/04/2019 18:49:27