我正在尝试使用请求(和bs4)从站点自动获取一些内容
我有一个脚本可以得到一个cookie:def getCookies(self):
username = 'username'
password = 'password'
URL = 'logonURL'
r = requests.get(URL, auth=('username', 'password'))
cookies = r.cookies
丢弃的饼干看起来像:<[, , ]>
但当我将cookie对象传递到下一个URL时:soup = Soup(s.get(URL, cookies = cookies).content)
这是不可行的-我可以通过倾倒汤看到,我没有给网络服务器我的凭据正确
我尝试运行请求会话:def getCookies(self):
self.s = requests.session()
username = 'username'
password = 'password'
URL = 'logURL'
r = self.s.get(URL, auth=('username', 'password'))
我也一样不快乐。
当我访问第二页时,我在FF中通过liveHttp查看了标题,看到了一个非常不同的表单:Cookie: WT_FPC=id=264b0aa85e0247eb4f11355304127862:lv=1355317068013:ss=1355314918680; UserInfo=Username=username; BIGipServerPE_Journals.lww.com_80=1423559690.20480.0000; PlatformAuthCookie=true; Institution=ReferrerUrl=http://logonURL.com/?wa=wsignin1.0&wtrealm=urn:adis&wctx=http://URL.com/_layouts/Authenticate.aspx?Source=%252fpecnews%252ftoc%252f2012%252f06440&token=method|ExpireAbsolute; counterSessionGuidId=6e2bd57f-b6da-4dd4-bcb0-742428e08b5e; MyListsRefresh=12/13/2012 12:59:04 AM; ASP.NET_SessionId=40a04p45zppozc45wbadah45; JournalsLockCookie=id=85d1f38f-dcbb-476a-bc2e-92f7ac1ae493&ip=10.204.217.84; FedAuth=77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48U2VjdXJpdHlDb250ZXh0VG9rZW4gcDE6SWQ9Il9mMGU5N2M3Zi1jNzQ5LTQ4ZjktYTUxNS1mODNlYjJiNGNlYzUtNEU1MDQzOEY0RTk5QURCNDFBQTA0Mjc0RDE5QzREMEEiIHhtbG5zOnAxPSJodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy93c3MvMjAwNC8wMS9vYXNpcy0yMDA0MDEtd3NzLXdzc2VjdXJpdHktdXRpbGl0eS0xLjAueHNkIiB4bWxucz0iaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvd3Mtc3gvd3Mtc2VjdXJlY29udmVyc2F0aW9uLzIwMDUxMiI+PElkZW50aWZpZXI+dXJuOnV1aWQ6ZjJmNGY5MGItMmE4Yy00OTdlLTkwNzktY2EwYjM3MTBkN2I1PC9JZGVudGlmaWVyPjxJbnN0YW5jZT51cm46dXVpZDo2NzMxN2U5Ny1lMWQ3LTQ2YzUtOTg2OC05ZGJhYjA3NDkzOWY8L0luc3RhbmNlPjwvU2VjdXJpdHlDb250ZXh0VG9rZW4+
出于明显的原因,我修改了问题中的用户名、密码和url。
我是不是漏掉了一些显而易见的东西?是否有其他/正确的方法来捕获cookie-我正在使用的当前方法不起作用。
编辑:
这是会话代码的独立版本:s = requests.session()
username = 'username'
password = 'password'
URL = 'logonURL.aspx'
r = s.get(URL, auth=('username', 'password'))
URL = r"URL.aspx"
soup = Soup(s.get(URL).content)
阅读一堆汤,我可以在html中看到它告诉我我没有访问权限-这个字符串只有在你没有登录时才会通过浏览器出现。