看到前面很多答案都讲的“术”——用什么软件怎么爬 , 那我就讲讲“道”和“术”吧——爬虫怎么工作以及怎么在python实现 。
先长话短说summarize一下:
你需要学习
基本的爬虫工作原理
基本的 文法 , 甚至还需要解析javascript , 因为现在的网页使用ajax的越来越多了 , 而很多网页内容都是通过ajax技术加载的 , 因为 , 只是简单地解析html 。
5.如何用Java写一个爬虫最近刚好在学这个 , 对于一些第三方工具类或者库 , 一定要看官方tutorial啊 。
学会用chrome network 分析请求 , 或者fiddler抓包分析 。
普通的网页直接用下载下来 , 然后从里面提取出来有用的信息 , 这些有用的信息一般就是正文 , 图片 , 链接一类的信息 。针对特定网站的爬虫就更好写了 , 用正则表达式 , 把网页里的链接信息找到 , 然后找到需要的信息 , 保存在本地 , 然后进入下一个链接重复上一次的过程 。
下面的脚本演示如何从加菲猫的官网上把从1978年至今的所有漫画全部下载下来 import os,urllib,urllib2,re hosts = "pile('''.+?(.*?)''') pcomic = re.compile('''''') pnext = re.compile('''''') def getpage(url):print url req = urllib2.Request(url) req.add_header("User-Agent","Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0") req.add_header("If-None-Match","") u = urllib2.urlopen(req).read() return u def getnextpos(content,patten):r = patten.findall(content) for x in r:print 'find next: ',x return x def savecomic(content,patten):r = patten.findall(content) print 'find commic:',r r2 = pname.findall(content) print 'find name:',r2 urlcomic = r[0] u = urllib.urlopen(urlcomic).read() name = r2[0].replace(' ','').split(',') year = name[-1] day = name[-2] filename = 'test.jpg' if not os.path.exists(year):os.makedirs(year)# is gif file ,the name the file as gif if ((u[0] is 'G') and (u[1] is 'I') and (u[2] is 'F')):filename = year+day+'.gif' else:filename = year+day+'.jpg' f = file(year+"/"+filename,"wb+") f.write(u) f.close() def main():url = hosts+initpos while(True):c = getpage(url) savecomic(c,pcomic) u = getnextpos(c,pnext) if u is None:break else:url = hosts+u if __name__ == '__main__':main() 。
【怎么写一个爬虫】

文章插图
- 电脑没声音怎么弄 电脑没声音怎么办win7
- cf怎么截图 CF游戏中怎么截图
- qq空间访问权限 手机怎么设置qq空间访问权限
- 鱼肉馅饺子怎么做 鱼肉馅饺子做法视频
- 怎么开葡萄酒 怎么开葡萄酒木塞小妙招
- 耸组词和拼音 耸组词和拼音和大写字母
- 洗龙沟是什么意思 洗龙沟是什么意思衣机里面太脏了怎么办
- wow使命召唤怎么做 使命召唤怎么弄
- 文件隐藏了怎么恢复 windows文件隐藏了怎么恢复
- 英雄联盟查战斗力 英雄联盟怎么查战斗力
