我打算使用Requests和PyQuery用Python编写网站搜寻器。
但是,我要定位的网站要求我登录自己的帐户。使用请求,是否可以与服务器建立会话(使用我的网站凭据),并使用此会话来爬网仅在登录后才能访问的网站?
我希望这个问题很清楚,谢谢。
最佳答案
对的,这是可能的。
我不了解PyQuery,但是我制作了搜寻器,这些搜寻器使用urllib2登录到站点。
您所需要做的就是使用cookiejar处理cookie并使用请求发送登录表单。
如果您提出更具体的问题,我也会尝试更加明确。
LE:
urllib2不会一团糟。我认为这是处理此类问题的最佳库。
这是一个代码片段,它将登录到站点(之后您可以正常解析该站点):
import urllib
import urllib2
import cookielib
"""Adding cookie support"""
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
"""Next we will log in to the site. The actual url will be different and also the data.
You should check the log in form to see what parameters it takes and what values.
"""
data = {'username' : 'foo',
'password' : 'bar'
}
data = urllib.urlencode(data)
urllib2.urlopen('http://www.siteyouwanttoparse.com/login', data) #this should log us in
"""Now you can parse the site"""
html = urllib2.urlopen('http://www.siteyoutwanttoparse.com').read()
print html
关于python - 与Web应用程序建立 session 以进行爬网,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16341317/