Python 爬取小说(诛仙)
来源:互联网 发布:淘宝图片搜索功能 编辑:程序博客网 时间:2024/04/29 23:47
爬虫正在学习中,感觉不能只看不动手,
于是,抓个小说试试手,
目前感觉正则表达式非常不熟悉,
主要是要用于匹配以及去除一些div br 等
标签存入txt中,一直在查资料。。。
#coding: utf-8from bs4 import BeautifulSoupimport urllib2import retitle=[] #小说名href=[] #链接url = 'http://www.biquge.tw/26_26491/'response = urllib2.urlopen(url)html_cont=response.read()soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')hrefAndname = soup.find("div", {"id":"list"}).findAll("a")#for item in hrefAndname:# href.append(item['href'])for item in hrefAndname: #保存小说名和链接 if re.findall(re.compile(ur'\u7b2c.+\u7ae0'),item.text): # print item.text.encode('utf-8') title.append(item.text) href.append(item['href'])for i in range(len(href)): try: print "爬取第"+str(i+1)+"章中……" newurl = 'http://www.biquge.tw'+ href[i] response = urllib2.urlopen(newurl) html_cont = response.read() soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8') content = soup.find("div", {"id":"content"}) cont=str(content) cont = re.sub(r'<\s*script[^>]*>[^<]*<\s*/\s*script\s*>','',cont) cont = re.sub(r'</div>','',cont) #删除br标签 cont = re.sub(r'<div\s\S*>','',cont) cont = re.sub(r'<br/>','\n',cont) #替换换行符 # f = open("E:/res/"+ str(i+1)+ ' .txt','w') f = open("E:/res/"+title[i]+'.txt','w') f.write(cont) f.close print "success" except: print "Sorry, 爬取第"+str(i+1)+"章失败"
《诛仙》还算短的,如果小说再长点,
时间会很久。
后续的,准备学下python中的多线程,
改进下爬取速度。。
0 0
- Python 爬取小说(诛仙)
- Python爬取小说
- python爬取小说
- 练:python爬取小说
- python爬取某一小说
- python爬取百度贴吧小说
- python爬取百度贴吧小说
- Python requests爬虫爬取小说数据
- 用python爬取豆瓣小说
- Python爬虫——小说爬取
- python爬取奇书网小说
- python 爬取排行榜小说和文本
- python 扒取小说2
- 爬取起点小说
- requests爬取小说
- Python爬虫实例--爬取百度贴吧小说
- Python爬虫系列:爬取小说并写入txt文件
- 用python爬取小说信息(简易版)
- 1085. Perfect Sequence (25)
- 2013 Asia Regional Changchun HDU 4821 String (BKDRhash+成段移动法判字符串)
- Android开发----lrc歌词的同步展示
- C# DataTable的用法详解
- python 基础4 字典
- Python 爬取小说(诛仙)
- 不要随便借出你的帐号
- java中的file.encoding属性到底是什么?
- 搜索引擎优化 SEO
- [UOJ#246][UER#7C]套路(数luan学gao相关)
- Xamarin IOS MAC虚拟机(VisualBox5.0) 真机测试成功!
- java调用微信接口获取token
- 单片机==AD读(28)
- LeetCode 412 Fizz Buzz