爬取小说《重生之狂暴火法》 1~140章

需要使用的库

  • requests
  • re

1、打开网址“ http://www.17k.com/list/2726194.html ”查看章节目录

按F12查看如下:

经过分析,我们可以通过简单的正则表达式,提取出每一章的章节名称(源代码第34行)

1 pat = r"(第.+章.+)</h1>"

2、接下来打开第一章通过源代码再次分析

再次通过简单的分析,我们可以可以用简单的正则表达式提取出小说内容(源代码45~47行)

3、源代码如下

 1 import requests
 2 import re
 3
 4
 5 class Novel(object):
 6     url_list = []
 7     chapter_list = []
 8     chapter_title_list = []
 9
10
11     def __init__(self, url):
12         self.url = url
13
14     def obtain_url(self):
15         response = requests.get(self.url)
16         response.encoding = "utf-8"
17         pat = r"/chapter/2726194/(\d+)\.html"
18         ls = []
19         ls2 = []
20         for i in re.findall(pat, response.text):
21             ls.append(i)
22         for i in range(1, 141):
23             ls2.append(ls[i])
24         for i in ls2:
25             new_url = "http://www.17k.com/chapter/2726194/" + i + ".html"
26             Novel.url_list.append(new_url)
27
28
29
30     def obtan_title(self):
31         for i in self.url_list:
32             response = requests.get(i)
33             response.encoding = "utf-8"
34             pat = r"(第.+章.+)</h1>"
35             title = re.findall(pat,response.text)
36             self.chapter_title_list.append(str(title))
37
38
39
40     def grab_url(self):
41         for i in self.url_list:
42             response = requests.get(i)
43             response.encoding = "utf-8"
44             lst = ‘‘
45             pat = r"  (.+)<br /><br />"
46             new_text = str(re.findall(pat, response.text))[1:-1]
47             pat2 = r"[^<br /><br />  ]"
48             for j in re.findall(pat2, new_text):
49                 if j == "。":
50                     j = "\n"
51                 lst = lst + j
52             self.chapter_list.append(lst)
53
54
55     def storage(self):
56         with open("F:\\重生.txt", "a") as f:
57             i = 0
58             while i < 140:
59                 f.write(str("\n" + self.chapter_title_list[i]) + "\n")
60                 f.write(self.chapter_list[i])
61                 i += 1
62
63
64     # 主方法
65     def grab(self):
66         # 获取网址
67         self.obtain_url()
68
69         #章节标题
70         self.obtan_title()
71
72         #章节内容
73         self.grab_url()
74
75         #存储
76         self.storage()
77
78 if __name__ == ‘__main__‘:
79     try:
80         spider = Novel("http://www.17k.com/list/2726194.html")
81         spider.grab()
82     except :
83         print("爬取出错~~")

运行后会在F盘生成一个 "重生.txt" 的文件

原文地址:https://www.cnblogs.com/diyi/p/9392467.html

时间: 2024-11-20 20:27:02

爬取小说《重生之狂暴火法》 1~140章的相关文章

Python实战项目网络爬虫 之 爬取小说吧小说正文

本次实战项目适合,有一定Python语法知识的小白学员.本人也是根据一些网上的资料,自己摸索编写的内容.有不明白的童鞋,欢迎提问. 目的:爬取百度小说吧中的原创小说<猎奇师>部分小说内容 链接:http://tieba.baidu.com/p/4792877734 首先,自己定义一个类,方便使用.其实类就像一个"水果篮",这个"水果篮"里有很多的"水果",也就是我们类里面定义的变量啊,函数啊等等,各种各样的.每一种"水果&q

Python爬虫:爬取小说并存储到数据库

爬取小说网站的小说,并保存到数据库 第一步:先获取小说内容 #!/usr/bin/python # -*- coding: UTF-8 -*- import urllib2,re domain = 'http://www.quanshu.net' headers = {     "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom

python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)

转载出处:药少敏   ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: 1 from bs4 import BeautifulSoup 2 import requests 3 4 if __name__ == '__main__': 5 html = requests.get('http://www.136book.com/huaqiangu/') 6 soup = BeautifulSoup(html.content, 'lxml'

scrapy初探之实现爬取小说

一.前言 上文说明了scrapy框架的基础知识,本篇实现了爬取第九中文网的免费小说. 二.scrapy实例创建 1.创建项目 C:\Users\LENOVO\PycharmProjects\fullstack\book9>scrapy startproject book9 2.定义要爬取的字段(item.py) import scrapy class Book9Item(scrapy.Item): # define the fields for your item here like: # na

Golang 简单爬虫实现,爬取小说

为什么要使用Go写爬虫呢? 对于我而言,这仅仅是练习Golang的一种方式. 所以,我没有使用爬虫框架,虽然其很高效. 为什么我要写这篇文章? 将我在写爬虫时找到资料做一个总结,希望对于想使用Golang写爬虫的你能有一些帮助. 爬虫主要需要解决两个问题: 获取网页 解析网页 如果这两个都无法解决的话就没法再讨论其他了. 开发一个爬取小说网站的爬虫会是一个不错的实践. 这是两个实例: Golang 简单爬虫实现 golang 用/x/net/html写的小爬虫,爬小说 这是需要的两个项目: go

多线程爬取小说时如何保证章节的顺序

前言 爬取小说时,以每一个章节为一个线程进行爬取,如果不加以控制的话,保存的时候各个章节之间的顺序会乱掉. 当然,这里说的是一本小说保存为单个txt文件,如果以每个章节为一个txt文件,自然不会存在这种情况. 不仅仅是小说,一些其他的数据在多线程爬取时也有类似情况,比如: 漫画:漫画其实是由大量图片组成,一般一本漫画会保存为一个pdf文件,在此过程要保证图片的顺序. 视频:现在网络上的视频大部分是由多个ts文件拼合,最后保存为一个mp4文件,要保证ts文件的顺序. 它们都有一个共同的特点,那就是

爬取小说

爬取小说: from bs4 import BeautifulSoup import requests class spiderstory(object): def __init__(self): self.url = 'http://www.365haoshu.com/Book/Chapter/' self.names = []#存放章节名称 self.hrefs = []#存放章节链接 def get_urlandname(self): '''获取章节名称和和章节URL''' respons

Python 爬取小说——《唐朝小闲人 》

# 爬取小说:唐朝小闲人 # 导入需要用到的库 import requestsimport osimport reimport timeimport random # 查看源网页 beginurl = 'https://www.sbiquge.com/2_2523/' # 目录网页 ## 爬取各章网页 url_response = requests.get(beginurl).text                 #目录网页的源代码url_regex = '<a href ="/2_2

爬取小说网站整站小说内容 -《狗嗨默示录》-

# !/usr/bin/env python # -*- coding: utf-8 -*- import urllib.request import re import MySQLdb import socket domain = 'http://www.quanshuwang.com' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Ch