爬虫python下载-python 下载 爬虫

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 那篇文章,上面提到过的。

你可能感兴趣的:(爬虫python下载-python 下载 爬虫)