1

我打算使用 Requests 和 PyQuery 用 Python 编写一个网站爬虫。

但是,我定位的网站要求我登录到我的帐户。使用请求,我是否可以与服务器建立会话(使用我的站点凭据),并使用此会话来抓取我只有在登录时才能访问的站点?

我希望这个问题很清楚,谢谢。

4

1 回答 1

2

对的,这是可能的。

我不了解 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
于 2013-05-02T14:59:57.287 回答