Python爬虫入门——2. 5 爬取斗破苍穹并保存到本地TXT
这次我们爬取斗破苍穹http://www.doupoxs.com/doupocangqiong/的全部文字,并保存到本地TXT。
话不多说,上代码:
[code]#导入requests库 import requests #导入 re 库 #导入时间模块 import time import re #定义请求头,请求头可以使爬虫伪装成浏览器 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'} #定义连接网络的列表 url_list = ['http://www.doupoxs.com/doupocangqiong/{}.html'.format(str(i)) for i in range(2,1665) ] #函数主体 with open('F:/exercise/斗破苍穹.txt', 'w') as f: for url in url_list: html = requests.get(url, headers = headers) #如果status_code = 200, 说明网页相应成功 if html.status_code == 200: #利用正则表达式获取内容 contents = re.findall('<p>(.*?)</p>', html.content.decode('utf-8'), re.S) #将内容写入到本地txt文档 f.write('\n\n') for content in contents: f.write(content+'\n') else: pass time.sleep(0.5)
首先我们要做的,依旧是观察目标网页的URL,斗破苍穹第一页http://www.doupoxs.com/doupocangqiong/2.html,第二页为
http://www.doupoxs.com/doupocangqiong/5.html,第三页为http://www.doupoxs.com/doupocangqiong/6.html,第四页为http://www.doupoxs.com/doupocangqiong/7.html。经过分析,第一页与第二页没有明显的规律,但是第二页往后规律就很明显了。我们依然可以构造网页http://www.doupoxs.com/doupocangqiong/{0}.html样式的url列表,但是 {} 里面为3,4的时候网页出现404,这该怎么办?这就需要我们来判断返回的status_cord了,如果返回200,则说明连接成功,否则相应失败。
现在来分析代码:
1.导入requests库、time模块、re 模块、定义请求头
2.构造ur连接列表http://www.doupoxs.com/doupocangqiong/ { }.html 区间为[2,1665) 左闭右开,其中3,4网页为404
3.在本地创建一个TXT文件,命名为 ”斗破苍穹.txt“ 。利用with 语句来进行文件的 写 操作。
3.1利用 with 语句 打开 open 路径为 “F:/exercise/斗破苍穹.txt”的文件,“w”为写操作。
3.2利用 for 循环读入 URL ,利用requests读取网页内容
3.3.判断是否成功连接网页,如果成功连接网页则:
3.3.1利用正则表达式获取文章内容。注意,我们获得的是非utf-8编码,因此在这里我们多了一个步骤,就是将获取到的内容转换为utf-8编码。你可以将 html.content.decode('utf-8) 更换为 html.text 打印一小部分内容观察一下。
3.3.2在文本写入两行空格,用来区分章节。
3.3.3循环读入获取到的内容,将其写入文本中
3.4如果连接失败,那么就pass吊此次循环,进入下一个循环。
3.5让程序休息0.5秒,防止一直在运行,频率过高从而导致爬虫失败。
文件操作:
打开文件进行操作之后需要将打开的文件关闭。否则会一直占用资源。但有时程序出现问题,导致打开的文件不能正常关闭,所以我们会用 try... finally来进行文件的操作。但是这样未免显得繁琐。所以 Python引入了 with 语句来自动关闭 close 文件。用法是 with open(“path”,‘identifier’)as f 其中path指的是文件的路径,包括文件名;‘identifier’ 是标识符,表示的是对文件进行何种操作: ‘r' 表示读文件: ’w' 表示写文件: ‘rb’ 表示读取二进制文件(比如图片,视频等)。
下图为成功读取保存的《斗破苍穹》文本文档:
阅读更多
- python爬虫-利用scrapy框架完成天天书屋内容爬取,并保存本地txt
- Python爬虫抓取豆瓣商业书籍,并保存为txt便于查阅
- 【Grades Crawler】利用python编写爬虫 爬取西电教务处成绩并本地保存
- Python爬虫(入门+进阶)学习笔记 1-5 使用pandas保存豆瓣短评数据
- Python爬虫入门实战系列(一)--爬取网络小说并存放至txt文件
- Python3爬虫学习4:降爬取的信息保存到本地
- [置顶] python爬虫实践——零基础快速入门(五)将爬取的数据存到本地
- python第一个爬虫小程序以及遇到问题解决(中文乱码)+批量爬取网页并保存至本地
- Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
- python爬虫由浅入深9---定向爬取股票数据信息并保存至本地文件
- 人生苦短,我用Python--爬虫模拟登陆教务处并且保存数据到本地
- Python3爬虫从入门到自残(三):保存数据
- python爬虫入门(九)Scrapy框架之数据库保存
- Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
- Python3爬虫学习之将爬取的信息保存到本地的方法详解
- Python 爬虫抓取美女图片保存到本地
- python python 入门学习之网页数据爬虫cnbeta文章保存
- Python 爬虫多线程爬取美女图片保存到本地
- Python爬虫(四):爬取136书屋小说,并保存至本地文本文件中,单进程多进程对比效率(以三生三世十里桃花为例)
- python爬虫数据保存到本地各种格式的方法