爬虫抓取网页来下载小说
2018-02-13 09:49
375 查看
利用Python3 编写爬虫,从笔趣阁抓个小说下载。
程序运行图如下:
import re import urllib.request import time import easygui as g # 输入地址 g.msgbox("利用Python3 编写爬虫,从笔趣阁抓个小说下载到手机查看") msg = "输入小说地址,例如http://www.biquge.com.tw/0_213/" title = '爬虫' root = g.enterbox(msg,title) # 伪造浏览器 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) ' \ 'AppleWebKit/537.36 (KHTML, like Gecko)'\ ' Chrome/62.0.3202.62 Safari/537.36'} req = urllib.request.Request(url=root, headers=headers) with urllib.request.urlopen(req, timeout=1) as response: # 大部分的涉及小说的网页都有charset='gbk',所以使用gbk编码 htmls = response.read().decode('gbk') # 匹配所有目录http://www.biquge.com.tw/0_213/" story_id = root.lstrip("http://www.biquge.com.tw/") dir_req = re.compile(r'<a href="/%s(\d+?.html)">'%story_id) dirs = dir_req.findall(htmls) # 创建文件流,将各个章节读入内存 with open('E:\一念永恒.txt', 'w') as f: for dir in dirs: # 组合链接地址,即各个章节的地址 url = root + dir # 有的时候访问某个网页会一直得不到响应,程序就会卡到那里,我让他0.6秒后自动超时而抛出异常 while True: try: request = urllib.request.Request(url=url, headers=headers) with urllib.request.urlopen(request, timeout=0.6) as response: html = response.read().decode('gbk') break except: # 对于抓取到的异常,让程序停止1.1秒,再循环重新访问这个链接,访问成功时退出循环 time.sleep(1.1) # 匹配文章标题 title_req = re.compile(r'<h1>(.+?)</h1>') # 匹配文章内容,内容中有换行,所以使flags=re.S content_req = re.compile(r'<div id="content">(.+?)</div>', re.S, ) # 获取标题 title = title_req.findall(html)[0] # 获取内容 content_test = content_req.findall(html)[0] # 筛除不需要的的html元素 strc = content_test.replace(' ', ' ') content = strc.replace('<br />', '\n') print('抓取章节>' + title) f.write(title + '\n') f.write(content + '\n\n')
程序运行图如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/02/3250f0dbafac1c46b2799b00669dbd54.png)
相关文章推荐
- python 爬虫(二)一个带下载进度的网页抓取小爬虫
- C# 使用 Abot 实现 爬虫 抓取网页信息 源码下载
- 爬虫入门三(获取各国网址,三种网页抓取方法,下载缓存)
- Python写爬虫——抓取网页并解析HTML
- d语言-下载网页,通过正则抓取对应的数据
- php网页分析 内容抓取 爬虫 文件分析
- 我的第一个爬虫程序:利用Python抓取网页上的信息
- Python爬虫使用代理proxy抓取网页
- python 爬虫 网络小说下载(静态网站)
- python3实现网络爬虫(7)-- 使用ip代理抓取网页
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
- python网页爬虫之列车时刻表的抓取(4)-完整的python脚本
- Node.js学习之网络爬虫(使用cheerio抓取网页数据)
- 爬虫系列6下载一个网页(异常处理,用户代理,重试次数)
- 网页抓取:PHP实现网页爬虫方式小结
- 简单的分布式爬虫(下载小说)
- Python3 爬虫(一)-- 简单网页抓取
- Python写爬虫——抓取网页并解析HTML
- 爬虫的自我解剖(抓取网页HtmlUnit)
- Python爬虫,用第三方库解决下载网页中文本的问题