错误“无法处理Browscap文件” python webscraping

时间:2018-11-15 07:11:16

标签: python web-scraping beautifulsoup urllib3

我正在尝试创建一个程序,该程序将访问我的大学网站上显示我的学期标记的特定https网页。我想抓取网页以检查最终成绩的变化,然后向自己发送电子邮件(这比全天都要随意检查更容易)。

我以前从未进行过网络抓取,并且该站点需要登录身份验证,所以这个问题可能比我想的要复杂,但这是我到目前为止的事情:

import certifi
from bs4 import BeautifulSoup
import urllib3 as u

url = "https://upnet.up.ac.za/psc/pscsmpra/EMPLOYEE/SA/c/UP_SS_MENU.UP_SS_RESULTS_FL.GBL"
http = u.PoolManager(cert_reqs='CERT_REQUIRED',ca_certs=certifi.where())

try:
    r =    http.request('GET',url,timeout=u.Timeout(connect=1.0, read=2.0))
except u.exceptions.NewConnectionError: 
    print("Connection Failed")

print(r.status)
soup = BeautifulSoup(r.data,features="html.parser")

print(soup.prettify())

运行此代码将返回以下内容:

  

200

     

无法处理Browscap文件。因为它可能会丢失。请   请与您的系统管理员联系。

如果我运行r.headers,我会得到:

  

HTTPHeaderDict({'Date':'Thu,15 Nov 2018 07:13:27 GMT','Server':   'Apache','Content-Length':'99','X-Frame-Options':'SAMEORIGIN',   Set-Cookie:   'appcsmpr08-7007-PORTAL-PSJSESSIONID = 5T8WMyIf2lC2ZSBTaf84UZBA-tV9BLAh!631984709;   domain = .up.ac.za;路径= /; HttpOnly,   NSC_wt_dbnqvtqspe = ffffffff8adf14db45525d5f4f58455e445a4a422d6f; expires = Thu,   15-Nov-2018 08:09:29 GMT; path = /; httponly,   dtCookie = E2152DB7F41B75674D0AE5146876F0EB | UFNDU018MQ;路径= /;   Domain = .up.ac.za”,“ X-Clacks-Overhead”:“ GNU Terry Pratchett”,   'Content-Type':'文本/纯文本; charset = UTF-8'})PS   C:\ Users \ Shaun \ Documents \ Personal_Projects \ markAlert>

我假设我可以连接,但是我不确定上面的错误是什么意思。谷歌搜索没有帮助。

任何有关如何解决此问题的帮助都值得赞赏!

1 个答案:

答案 0 :(得分:0)

该错误来自服务器,因为无法检测到您的请求用户代理,请对其进行设置。

heads = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0'}
http = u.PoolManager(headers=heads)