爬虫的修养-博客篇
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了爬虫的修养-博客篇,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1792字,纯文字阅读大概需要3分钟。
内容图文
- 此次的爬虫对象是:http://blog.csdn.net/sinyu890807的文章
- 请务必理解:python的基础(http://www.cnblogs.com/courtier/p/4285897.html),urllib基本使用,了解http协议
- 首先,为了不让服务器报403,我们必须设置个能随机User-Agent的列表:
# user_agent _header = [‘Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30‘ ,‘Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0‘, ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12‘];
- 接下来,让他们随机并设置消息头:
def connectURL(self,page): print " 正在连接..... " head = random.choice(self._header); req = urllib2.Request(page); req.add_header(‘User-Agent‘,self._header); req.add_header(‘Host‘,‘blog.csdn.net‘); req.add_header(‘Referer‘,‘http://blog.csdn.net/‘); req.add_header(‘GET‘,page); #页面的全部内容return urllib2.urlopen(req).read();
- 把爬虫爬到的内容,用正则来获取我们需要的:
def parseTolist(self,info): li = []; reg = r‘<span class="link_title"><a href="(/guolin_blog/article/details/[0-9]+)">([^v]*)(?=</a>)‘; pat = re.compile(reg);#编译正则 Blog_Link = re.findall(pat,info); #print Blog_Link;for i in Blog_Link: msg = i[1].replace("\r\n ",""); li.append(msg+‘:‘+‘http://blog.csdn.net‘+i[0]); return li;
- 调用一下上面的方法(默认是放到”D:\\python\\link.txt”):
def wisdomBug(self): # 打印页面 for k in range(1,self.pagecount): page = self.url+str(k); print‘引擎正在:‘+page; #parese--文章列表 info = self.connectURL(page); li = self.parseTolist(info); #save --保存for i in li: f = open("D:\\python\\link.txt",‘a‘); f.write(i+os.linesep*2); f.close();
- 最后,我们可以看下我们的执行效果:
源代码:(https://github.com/aliencool/Python/blob/master/connect.py)
-
唠叨语:
如果,有些网站动态User-Agent无法使用,那就要更高级的“代理IP”来使用了。其实,用Python坐爬虫可以坐很多事情的,比如,
查12306车票呀、爬一些新闻文章。我的此次博文个人总结只是入门级别,还有很多好的爬虫框架可以爬取更多信息更高效(多线程)
希望,我们一起能继续深入,提供更好的博文。
原文:http://www.cnblogs.com/courtier/p/4287177.html
内容总结
以上是互联网集市为您收集整理的爬虫的修养-博客篇全部内容,希望文章能够帮你解决爬虫的修养-博客篇所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。