iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python爬虫:爬取小说并存储到数据库
  • 668
分享到

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

2024-04-02 19:04:59 668人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

爬取小说网站的小说,并保存到数据库第一步:先获取小说内容#!/usr/bin/python # -*- coding: UTF-8 -*- import 


爬取小说网站的小说,并保存到数据库


第一步:先获取小说内容

#!/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) Chrome/58.0.3029.110 Safari/537.36"
}

def getTypeList(pn=1): #获取分类列表的函数
    req = urllib2.Request('http://www.quanshu.net/map/%s.html' % pn) #实例将要请求的对象
    req.headers = headers  #替换所有头信息
    #req.add_header() #添加单个头信息
    res = urllib2.urlopen(req)   #开始请求
    html = res.read().decode('gbk')  #decode解码,解码成Unicode
    reg = r'<a href="(/book/.*?)" target="_blank">(.*?)</a>'
    reg = re.compile(reg) #增加匹配效率  正则匹配返回的类型为List

    return re.findall(reg,html)

def getNovelList(url):  #获取章节列表函数
    req = urllib2.Request(domain + url)
    req.headers = headers
    res = urllib2.urlopen(req)
    html = res.read().decode('gbk')
    reg = r'<li><a href="(.*?)" title=".*?">(.*?)</a></li>'
    reg = re.compile(reg)
    return re.findall(reg,html)

def getNovelContent(url):  #获取章节内容
    req = urllib2.Request(domain + url)
    req.headers = headers
    res = urllib2.urlopen(req)
    html = res.read().decode('gbk')
    reg = r'style5\(\);</script>(.*?)<script type="text/javascript">style6\(\)'
    return re.findall(reg,html)[0]


if __name__ == '__main__':
    for type in range(1,10):
        for url,title in getTypeList(type):
            for zurl,ztitle in getNovelList(url):
                print u'正则爬取----%s' %ztitle
                content = getNovelContent(url.replace('index.html',zurl))
                print content
            break
        break


执行后结果如下:

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




第二步:存储到数据库

1、设计数据库

1.1 新建库:novel

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


1.2 设计表:novel

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


1.3 设计表:chapter

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


并设置外键

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




2、编写脚本

#!/usr/bin/Python
# -*- coding: UTF-8 -*-

import urllib2,re
import Mysqldb

class sql(object):
    conn = mysqldb.connect(host='192.168.19.213',port=3306,user='root',passwd='Admin123',db='novel',charset='utf8')
    def addnovels(self,sort,novelname):
        cur = self.conn.cursor()
        cur.execute("insert into novel(sort,novelname) values(%s , '%s')" %(sort,novelname))
        lastrowid = cur.lastrowid
        cur.close()
        self.conn.commit()
        return lastrowid
    def addchapters(self,novelid,chaptername,content):
        cur = self.conn.cursor()
        cur.execute("insert into chapter(novelid,chaptername,content) values(%s , '%s' ,'%s')" %(novelid,chaptername,content))
        cur.close()
        self.conn.commit()


domain = 'http://www.quanshu.net'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}

def getTypeList(pn=1): #获取分类列表的函数
    req = urllib2.Request('http://www.quanshu.net/map/%s.html' % pn) #实例将要请求的对象
    req.headers = headers  #替换所有头信息
    #req.add_header() #添加单个头信息
    res = urllib2.urlopen(req)   #开始请求
    html = res.read().decode('gbk')  #decode解码,解码成Unicode
    reg = r'<a href="(/book/.*?)" target="_blank">(.*?)</a>'
    reg = re.compile(reg) #增加匹配效率  正则匹配返回的类型为List

    return re.findall(reg,html)

def getNovelList(url):  #获取章节列表函数
    req = urllib2.Request(domain + url)
    req.headers = headers
    res = urllib2.urlopen(req)
    html = res.read().decode('gbk')
    reg = r'<li><a href="(.*?)" title=".*?">(.*?)</a></li>'
    reg = re.compile(reg)
    return re.findall(reg,html)

def getNovelContent(url):  #获取章节内容
    req = urllib2.Request(domain + url)
    req.headers = headers
    res = urllib2.urlopen(req)
    html = res.read().decode('gbk')
    reg = r'style5\(\);</script>(.*?)<script type="text/javascript">style6\(\)'
    return re.findall(reg,html)[0]

mysql = Sql()
if __name__ == '__main__':
    for sort in range(1,10):
        for url,title in getTypeList(sort):
            lastrowid = mysql.addnovels(sort, title)
            for zurl,ztitle in getNovelList(url):
                print u'正则爬取----%s' %ztitle
                content = getNovelContent(url.replace('index.html',zurl))
                print u'正在存储----%s' %ztitle
                mysql.addchapters(lastrowid,ztitle,content)


3、执行脚本

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


4、查看数据库

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


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

可以看到已经存储成功了。




报错:

_mysql_exceptions.OperationalError: (1364, "Field 'novelid' doesn't have a default value")


解决:执行sql语句

SELECT @@GLOBAL.sql_mode;

SET @@GLOBAL.sql_mode="NO_ENGINE_SUBSTITUTION";


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


报错参考:http://blog.sina.com.cn/s/blog_6d2b3e4901011j9w.html





--结束END--

本文标题: Python爬虫:爬取小说并存储到数据库

本文链接: https://www.lsjlt.com/news/48862.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python爬虫:爬取小说并存储到数据库
    爬取小说网站的小说,并保存到数据库第一步:先获取小说内容#!/usr/bin/python # -*- coding: UTF-8 -*- import ...
    99+
    2024-04-02
  • Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
    目录一、mysql数据库建表二、下面直接上代码(爬虫方法)三、插入数据库json数据       四、总结一下爬取数据的步...
    99+
    2024-04-02
  • Python爬虫如何获取数据并保存到数据库中
    本篇内容主要讲解“Python爬虫如何获取数据并保存到数据库中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫如何获取数据并保存到数据库中”吧!1.简介介绍-网络爬虫(又称为网页蜘...
    99+
    2023-07-02
  • python爬虫之爬取笔趣阁小说
    目录前言一、首先导入相关的模块二、向网站发送请求并获取网站数据三、拿到页面数据之后对数据进行提取四、获取到小说详情页链接之后进行详情页二次访问并获取文章数据五、对小说详情页进行静态页...
    99+
    2024-04-02
  • Python爬虫 自动爬取图片并保存
    一、准备工作   用python来实现对图片网站的爬取并保存,以情绪图片为例,搜索可得到下图所示 f12打开源码 在此处可以看到这次我们要爬取的图片的基本信息是在img - scr中 二、代码实现 这次的爬取主要用了如下的第三方库...
    99+
    2023-10-09
    爬虫 python 数据挖掘
  • python爬虫之爬取笔趣阁小说升级版
    python爬虫高效爬取某趣阁小说 这次的代码是根据我之前的 笔趣阁爬取 的基础上修改的,因为使用的是自己的ip,所以在请求每个章节的时候需要设置sleep(4~5)才不会被封ip...
    99+
    2024-04-02
  • 【100天精通python】Day44:python网络爬虫开发_爬虫基础(爬虫数据存储:基本文件存储,MySQL,NoSQL:MongDB,Redis 数据库存储+实战代码)
    目录 1 数据存储 1.1 爬虫存储:基本文件存储 1.2 爬虫存储:使用MySQL 数据库 1.3 爬虫 NoSQL 数据库使用 1.3.1 MongoDB 简介 1.3.2 MongoDB 使用 1.3.1 爬虫存储:使用MongoDB...
    99+
    2023-08-31
    python 爬虫 开发语言
  • Python爬虫之爬取某文库文档数据
    目录一、基本开发环境二、相关模块的使用三、目标网页分析四、整体思路五、爬虫代码实现六、写入文档一、基本开发环境 Python 3.6 Pycharm 二、相关模块的使用 impo...
    99+
    2024-04-02
  • Python爬虫之爬取最新更新的小说网站
    目录一、引言二、关于相关访问请求及应答报文2.1、百度搜索请求2.2、百度返回搜索结果2.3、小说网站关于最新更新的展现及html报文格式三、实现思路及代码3.1、根据url获取网站...
    99+
    2024-04-02
  • Python 爬虫 招聘信息并存入数据库
      新学习了selenium,啪一下腾讯招聘   1 from lxml import etree 2 from selenium import webdriver 3 import pymysql 4 def Geturl(f...
    99+
    2023-01-30
    爬虫 招聘信息 数据库
  • python爬虫爬取赶集网数据
    一.创建项目 scrapy startproject putu 二.创建spider文件 scrapy genspider  patubole patubole.com   三.利用chrome浏览器分析出房价和标题的两个字段的x...
    99+
    2023-01-31
    爬虫 数据 赶集网
  • Python爬虫:导出爬取的数据
    最近想要做一个爬虫,检验一下Python的学习成果,眼看快要做完了,又遇到了问题,想要导出爬取的数据就必须要了解CSV文件,可是!下面是我百度出的结果! 啊啊啊啊! 作为一枚小白,我看不懂百科在说些什么?!后来,在网上发现一个讲爬...
    99+
    2023-01-31
    爬虫 数据 Python
  • Python爬虫之在MySQL中存储数据
    MySQL是一个开源的关系型数据库管理系统,被广泛应用于网站开发中的数据存储。在爬虫中,数据的存储是非常重要的一环。下面我们先简单介绍MySQL的基本知识,再讲一下在Python爬虫中如何使用MySQL进行数据存储。 MySQL基本概念 数...
    99+
    2023-10-09
    数据库 mysql python
  • 怎么用Scrapy爬虫框架爬取食品论坛数据并存入数据库
    这篇文章主要介绍“怎么用Scrapy爬虫框架爬取食品论坛数据并存入数据库”,在日常操作中,相信很多人在怎么用Scrapy爬虫框架爬取食品论坛数据并存入数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用...
    99+
    2023-06-17
  • python怎么爬取数据保存到数据库
    要将爬取的数据保存到数据库,可以使用Python的数据库模块(如SQLite、MySQL、MongoDB等)将数据插入到数据库中。以...
    99+
    2023-09-08
    python 数据库
  • Python爬虫爬取疫情数据并可视化展示
    目录知识点开发环境爬虫完整代码导入模块分析网站发送请求获取数据解析数据保存数据数据可视化导入模块读取数据死亡率与治愈率各地区确诊人数与死亡人数情况知识点 爬虫基本流程 ...
    99+
    2024-04-02
  • Python爬虫爬数据写入到EXCEL中
    Python抓数据写到EXCEL中。以前都是写到txt中然后再导入到excel。现在直接写到excel中。#coding=utf-8 import xlwt import requests from bs4 import Beautiful...
    99+
    2023-01-31
    爬虫 数据 Python
  • 怎么使用python爬虫爬取数据
    本篇内容介绍了“怎么使用python爬虫爬取数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python爬出六部曲第一步:安装reques...
    99+
    2023-06-29
  • Python爬虫爬数据写入到文件
    #coding=utf-8 import requests from bs4 import BeautifulSoup import sys reload(sys)   sys.setdefaultencoding('utf8')  r=r...
    99+
    2023-01-31
    爬虫 文件 数据
  • Python爬虫,获取,解析,存储详解
    目录1.获取数据2.解析数据3.数据保存为CSV格式和存入数据库总结1.获取数据 import requests def drg(url): try: h...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作