python 下载 爬虫

用python 写爬虫,一般基于两种形式:
1. 为了爬取 页面内容。2. 下载文件,有很多下载站,提供下载链接。
这两种爬虫,都有可能遇到需要登录后才能下载。所以涉及到用python 登陆网站后,再去别的页面爬取内容或下载文件。
基础知识,可以参考:
http://www.yihaomen.com/article/python/210.htm
这是爬CSDN 内容的一个小爬虫,这是爬内容的。本文主要讲爬下载的。
比如我想爬 asp300.com 的源码. 首先可以注册一个账号,比如 账号:yihaomen,密码:abcedfg.

然后准备python 代码:
程序代码 程序代码

#coding:gb2312
import urllib2,cookielib,urllib
cookie=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
#进行认证
postdata = urllib.urlencode( {'username' : 'yihaomen', 'password' : 'abcdefg','loginsubmit':'   登 录   ' })
login_response= urllib2.urlopen('http://www.asp300.com/2012user/login.jsp' ,postdata)
aa=login_response.read()
aa.close()
#认证完毕后,打开原来要登陆后才能下载的页面
pp=urllib2.urlopen('http://www.asp300.com/2012dll/Down.jsp?CodeID=43150&id=2')
bb=pp.read()
fp=open('c:/mydownload.rar','wb')
fp.write(bb)
fp.close()


这样文件就保存下来了。当然这仍然是一个实验局,如果真正使用,必须结合多线程,断点续传,分片下载。实验局,只要说明,如何用python 登陆网站。

至于登陆认证时: {'username' : 'yihaomen', 'password' : 'abcdefg','loginsubmit':'   登 录   ' }
为什么是这样的,你可以装一个firebug,或者 httpfox ,跟踪一下 登陆时post 或 get 的数据,你模拟一个格式就好了。

另外,对于有些网站,必须加入header ,可以参考 爬取csdn 那篇文章,上面提到过的。


除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: python 爬虫
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.