首页 / 爬虫 / python 爬虫学习笔记2
python 爬虫学习笔记2
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 爬虫学习笔记2,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2086字,纯文字阅读大概需要3分钟。
内容图文
![python 爬虫学习笔记2](/upload/InfoBanner/zyjiaocheng/1080/9fab7b0367804e848974d51440ce1233.jpg)
接着上一篇笔记
这次将该blog的所有文章都下载下来
思路为根据dict中的url去解析网页
并将其中的博文部分获取并下载下来
# coding=utf-8 import urllib2 import urllib from bs4 import BeautifulSoup import sys reload(sys) sys.setdefaultencoding(‘utf-8‘) def query_item(input,tag=None,cla=None): ‘‘‘ 获取对应url中 div标签 class的对象 返回的是set对象p ‘‘‘ soup=BeautifulSoup(input,"html.parser") if cla==None: if tag == None: return soup.find_all(‘div‘) else: return soup.find_all(tag) else: if tag == None: return soup.find_all(‘div‘,class_=cla) else: return soup.find_all(tag,class_=cla) req_header = { ‘Host‘:"blog.csdn.net", ‘User-Agent‘:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36", ‘Accept‘:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", ‘Accept-Language‘:"zh-CN,zh;q=0.8", ‘Connection‘:"keep-alive", "Cache-Control":"max-age=0", "Referer":"http://blog.csdn.net"} blog_art=[] i=1 #该循环是获取最大页面数,并将获取的页面放入一个list中while True: url="http://blog.csdn.net/zhaoyl03/article/list/" req=urllib2.Request(url+str(i),None,req_header) result = urllib2.urlopen(req,None) artcle_num=query_item(result.read(),‘div‘,‘list_item article_item‘) if len(artcle_num)<15: for x in artcle_num: blog_art.append(x) breakelse: i+=1 for x in artcle_num: blog_art.append(x) #现在得到blog的有效页数 i 和所有的博文 blog_art host_url=‘http://blog.csdn.net‘ query_result={} for x in blog_art: for y in x.find(‘span‘,‘link_title‘): #得到所有博文的title query_result[str(y.get_text())]=str(host_url+y.get(‘href‘)) ‘‘‘ query_result是标题:url的字典 下面根据这个字典将每个博文的内容爬出来 保存在本地 ‘‘‘ a=1 time=‘‘for x,y in query_result.items(): temp_req=urllib2.Request(y,None,req_header) temp_result=urllib2.urlopen(temp_req,None) for i in query_item(temp_result,‘div‘,‘article_content‘): # f=open(‘d:\\csdn\\%s.html‘ % str(x.strip()),‘w‘)#有问题 无法将博文标题作为文件名写入 f=open(‘d:\\csdn\\%s.html‘% a,‘w‘) f.write(‘‘‘<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head>‘‘‘) f.write(str(x)) for j in i: f.writelines(str(j)) f.close() a+=1
下面是抓取的结果
原文:http://www.cnblogs.com/csy2994/p/4738946.html
内容总结
以上是互联网集市为您收集整理的python 爬虫学习笔记2全部内容,希望文章能够帮你解决python 爬虫学习笔记2所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。