在需要身份验证的地方使用 BeautifulSoup
Using BeautifulSoup where authentication is required
我正在使用公司项目的 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 尝试访问数据时遇到的错误。
你考虑过使用机械吗?
import mechanize
from bs4 import BeautifulSoup
import urllib2
import cookielib
cook = cookielib.CookieJar()
req = mechanize.Browser()
req.set_cookiejar(cook)
req.open("http://www.cmegroup.com/trading/products/#sortField=oi&sortAsc=false&venues=3&page=1&cleared=1&group=1")
req.select_form(nr=0)
req.form['username'] = 'username'
req.form['password'] = 'password.'
req.submit()
print req.response().read()
编辑
如果您遇到 robots.txt 问题并且您有权规避此问题,请查看此答案以了解执行此操作的技术
如果您正在使用 BeautifulSoup 并在 Python 3.x 上请求,只需使用:
from bs4 import BeautifulSoup
import requests
r = requests.get('URL', auth=('USER_NAME', 'PASSWORD'))
soup = BeautifulSoup(r.content)
我正在使用公司项目的 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 尝试访问数据时遇到的错误。
你考虑过使用机械吗?
import mechanize
from bs4 import BeautifulSoup
import urllib2
import cookielib
cook = cookielib.CookieJar()
req = mechanize.Browser()
req.set_cookiejar(cook)
req.open("http://www.cmegroup.com/trading/products/#sortField=oi&sortAsc=false&venues=3&page=1&cleared=1&group=1")
req.select_form(nr=0)
req.form['username'] = 'username'
req.form['password'] = 'password.'
req.submit()
print req.response().read()
编辑
如果您遇到 robots.txt 问题并且您有权规避此问题,请查看此答案以了解执行此操作的技术
如果您正在使用 BeautifulSoup 并在 Python 3.x 上请求,只需使用:
from bs4 import BeautifulSoup
import requests
r = requests.get('URL', auth=('USER_NAME', 'PASSWORD'))
soup = BeautifulSoup(r.content)