我是python(c ++开发人员)的新手,我正在尝试在Windows IE上进行网页抓取。
我面临的问题是,当我使用“requests”库打开URL时,服务器总是向我发送一个登录页面。我解决了这个问题。它实际上是因为它假设你是通过IE尝试执行的功能,它使用SSO(单一注册对象)中的一些信息,这些信息在Windows首次登录到Web服务器时在后台执行(认为这是一些奇怪的设置。)
观察到这一点,我改变了我的策略&开始使用webbrowser lib。 现在,当我尝试使用webbrowser.open(“url”)时,浏览器正常打开页面,这很棒!!!
但是,我现在的问题是:
1)我不希望打开的浏览器页面对用户可见(某种方式是在后台打开浏览器)。我试着用这个:
ie = webbrowser.BackgroundBrowser(webbrowser.iexplore)
ie.Visible = 0
ie.open('url')
但没有成功。 它会打开用户可见的页面。
2)[这是主要活动]我想刮掉在上面打开的网页浏览器的IE页面中打开的页面。怎么做? 我试图深入研究this link,但没有找到任何用于获取数据的API。
请帮助。
PS:我尝试使用漂亮的汤来使用请求在其他网页上进行抓取。这是成功的&我去了我想要的数据。但不是在这种情况下。
答案 0 :(得分:1)
webbrowser
模块不允许这样做。您提到的get
功能是检索已注册的Web浏览器,而不是废弃HTTP GET请求。
我不知道是什么触发了您在IE中描述的行为,您是否尝试使用IE ones更改User-Agent
?您可以查看此帖子了解详情:Sending "User-agent" using Requests library in Python