TIM*_*MEX 4 python authentication session post web-crawler
现在,我可以使用urllib2抓取常规页面.
request = urllib2.Request('http://stackoverflow.com')
request.add_header('User-Agent',random.choice(agents))
response = urllib2.urlopen(request)
htmlSource = response.read()
print htmlSource
Run Code Online (Sandbox Code Playgroud)
但是......我想模拟POST(或假会话)?这样我就可以进入Facebook并爬行了.我怎么做?
当您登录时,您需要保留您选择的网站发送的cookie; 这就是保持会话的原因.使用urllib2,您可以通过创建支持cookie处理的Opener对象来完成此操作:
import urllib2, cookielib
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
Run Code Online (Sandbox Code Playgroud)
有了这个开场白,你可以做GET或POST请求:
content = opener.open(urllib2.Request(
"http://social.netwo.rk/login",
"user=foo&pass=bar")
).read()
Run Code Online (Sandbox Code Playgroud)
由于urllib2.Request有第二个参数,它将是一个POST请求 - 如果是无,则最终得到一个GET请求.您还可以使用.add_header或通过将构造函数传递给标头的字典(或元组 - 元组)来添加HTTP标头.有关更多信息,请阅读urllib2.Request手册.
这应该让你开始!祝好运.
(ps:如果您不需要对cookie的读访问权限,您可以省略自己创建cookie jar; HTTPCookieProcessor将为您完成.)
| 归档时间: |
|
| 查看次数: |
3871 次 |
| 最近记录: |