刮取内部网页

2024-05-18 14:21:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我得刮一个我组织的内部网页。如果我用漂亮的肥皂

“未授权访问”

我不想把我的用户名/密码放在源代码中,因为它将在同事之间共享。 如果我使用Firefox打开同一个web url,它不会要求我登录,唯一的问题是当我使用python脚本发出相同的请求时。 有没有办法用python脚本共享firefox使用的同一个会话?在

我想我的身份验证是在我的电脑上,因为如果我注销,当我重新输入时删除所有的cookie,我是自动登录的。你知道为什么我的python脚本没有这样做吗?在


Tags: 脚本身份验证weburl网页密码源代码cookie
2条回答

1)在Firefox浏览器中进行身份验证后,确保获取cookie密钥/值。在

2)使用以下代码中的数据:

from bs4 import BeautifulSoup
import requests

browser_cookies = {'your_cookie_key':'your_cookie_value'}
s = requests.Session()
r = s.get(your_url, cookies=browser_cookies)
bsoup = BeautifulSoup(r.text, 'lxml')

requests.Session()表示持久性。 还有一个提示,你也可以这样称呼你的脚本:

^{pr2}$

然后,用sys module得到这两个值。代码将是:

import sys
browser_cookies = {sys.argv[1]:sys.argv[2]}

使用浏览器登录组织时,您需要提供凭据,服务器将返回一个绑定到组织域的cookie。此cookie已过期,只要cookie有效,就可以使用导航组织的站点,而不必登录。在

您可以在这里阅读有关cookies的信息:
https://en.wikipedia.org/wiki/HTTP_cookie

你的网站刮板不需要存储你的凭据。首先删除Cookie,然后使用浏览器的开发人员工具,您可以(查看“网络”选项卡):

  1. 确定您的组织是否使用单独的身份验证端点
    • 如果不明显,那么您可以询问it部门
  2. 使用auth端点使用传入的凭据获取cookie
  3. 查看系统如何使用此cookie(查看HTTP请求/响应头)
  4. 使用此cookie来浏览网站
  5. 自由分享你的代码-如果有人需要浏览网站,那么他们可以传递他们的凭证,或者使用curl命令来获取/设置一个有效的cookie头

相关问题 更多 >

    热门问题