【发布时间】:2017-10-28 07:13:06
【问题描述】:
我正在使用 BeautifulSoup4 和 Python 请求为公司项目抓取 LAN 数据。由于网站有登录界面,我无权访问数据。登录界面是一个弹出窗口,不允许我在不登录的情况下访问页面源或检查页面元素。我得到的错误是这个-
访问错误:未经授权 访问此文档需要用户 ID
This is a screen-shot of the pop-up box(涂黑部分为敏感信息)。它根本没有关于 html 标签的信息,因此我无法通过 python 自动登录。
我尝试过 requests_ntlm、selenium、python 请求,甚至 ParseHub,但都没有成功。我已经在这个阶段卡了一个月了!请,任何帮助将不胜感激。
下面是我的初始代码:
import requests
from requests_ntlm import HttpNtlmAuth
from bs4 import BeautifulSoup
r = requests.get("www.amazon.in")
from urllib.request import Request, urlopen
req = Request('http://www.cmegroup.com/trading/products/#sortField=oi&sortAsc=false&venues=3&page=1&cleared=1&group=1', headers={'User-Agent': 'Mozilla/5.0'})
webpage = urlopen(req).read()
print r.content
r = requests.get("www.amazon.in",auth=HttpNtlmAuth('user_name','passwd'))
print r.content*
s_data = BeautifulSoup(r.content,"lxml")*
print s_data.content
错误:
文档错误:未经授权
访问此文档需要用户 ID访问错误:未经授权
这是我在手动登录站点后 BeautifulSoup 尝试访问数据时遇到的错误。
【问题讨论】:
-
(unable-to-log-in-to-amazon-using-python) [stackoverflow.com/questions/36488023/…
-
澄清:我提供的网站网址只是一个示例。我不能透露真实的,因为它是一个私人网站。
-
单独使用
urllib和requests在需要登录的情况下没有多大帮助。使用requests.Session。如果您不熟悉它,请参阅docs.python-requests.org/en/master/user/advanced。此外,在浏览器中打开开发人员选项卡并研究网络窗口,以查看浏览器发送了哪些请求以及哪些查询字符串和标头。在某些情况下,单独使用User-Agent是不够的。您必须提供更多信息,以便我们进一步提供帮助。或许,考虑发布网络标签的内容,并用假的替换它们来掩盖敏感信息。 -
另外,BeautifulSoup 与您面临的问题无关。因此,请考虑编辑您的帖子以使其更清晰。
标签: python web-scraping beautifulsoup lan intranet