我正在做一个个人项目,试图使用Python从金融数据网站上抓取HTML表。我能够成功地使用Python中的requests包访问公共网站并提取任何信息(之后使用BeautfulSoup4进行处理(,但我使用的代码如下所示:
# import requests
import requests
# access website
url = 'https://financial-data-url.ezproxy1.library.uniname.edu.com/path/to/financial/data'
headers = example_header
page = requests.get(url, headers = headers)
然而,尝试访问该网站通常需要通过EZproxy服务器登录我所在大学的图书馆数据库(如示例url所示(。当我试图在通过图书馆数据库访问后请求财务数据网页的URL时,它返回的似乎是大学图书馆的EZproxy网页。这是我在被引导到财务数据网页之前需要点击"登录"的地方。
请求功能中是否有我可能缺少的某些凭据提供,或者可能有不同的方式将代理服务器传递到URL,从而使请求不会出现在代理服务器登录页面上?
我发现解决这个问题最快、最有效的方法是使用Selenium基于web的自动化包(https://selenium-python.readthedocs.io/)
Selenium使得在浏览器中复制登录和导航变得非常容易,就像一个人一样。IMO,它的简单性可能远远超过直接根据用例调用网页的好处(当速度和效率是主要目标时,效率不高,但如果这不是主要限制,它会很好地工作(