Python网络爬虫实践(2):爬取小说网站小说

Python网络爬虫实践(2)

一、需求分析

爬取某小说网站的一部小说

二、步骤

  • 目标数据
    • 网站
    • 页面
  • 分析数据加载流程
    • 分析目标数据所对应的url
  • 下载数据
  • 清洗,处理数据
  • 数据持久化

重点:分析目标数据所对应的url
本文小说网站选取精彩小说网为例,选取的小说为盗墓笔记。
通过Chrome开发者模式,找到小说名字,目录,目录内容所在位置。
小说的名字:
Python网络爬虫实践(2):爬取小说网站小说_第1张图片

目录:
Python网络爬虫实践(2):爬取小说网站小说_第2张图片
目录内容:
Python网络爬虫实践(2):爬取小说网站小说_第3张图片

三、代码实现

python:
import requests
#导入正则表达式
import re
# 下载一个网页
url = 'http://www.jingcaiyuedu.com/book/22418.html'
# 模拟浏览器发送http请求
response = requests.get(url)
# 编码方式
response.encoding = 'utf-8'
# 目标小说主页的网页源码
html = response.text
# 小说的名字
title = re.findall(r'',html)[0]
# 新建一个文件,保存小说内容(以写的方式)
fb = open('%s.txt' % title, 'w', encoding='utf-8')
# 获取每一章的信息(章节,url)
dl = re.findall(r'
.*?
'
,html,re.S)[0] chapter_info_list = re.findall(r'href="(.*?)">(.*?)<',dl) # 循环每一个章节,分别去下载 for chapter_info in chapter_info_list: chapter_url,chapter_title = chapter_info chapter_url = "http://www.jingcaiyuedu.com%s" % chapter_url # 下载章节的内容 chapter_response = requests.get(chapter_url) chapter_response.encoding = 'utf-8' chapter_html = chapter_response.text # 提取章节内容 chapter_content = re.findall(r'(.*?)',chapter_html, re.S)[0] # 清洗数据,替换空格,换行符 chapter_content = chapter_content.replace(' ','') chapter_content = chapter_content.replace(' ','') chapter_content = chapter_content.replace('
'
,'') chapter_content = chapter_content.replace('
'
, '') #持久化,写入标题,内容并换行 fb.write(chapter_title) fb.write(chapter_content) fb.write('\n') print(chapter_url)

四、运行结果

点击运行,生成小说的txt文件(作为演示我只爬取了一部分章节):

你可能感兴趣的:(Python爬虫)