使用正则提取数据,请求库requests,看代码,在存入数据库时,报错ERROR 1054 (42S22): Unknown column ‘title' in ‘field list'。原来是我写sql 有问题,sql = “insert into poem(title,author,content,create_time) values({},{},{},{})”.format(title, author,content,crate_time)应该写成sql = “insert into poem(title,author,content,create_time) values('{}','{}','{}','{}')”.format(title, author,content,crate_time)。

把插入的值放入引号中。

import datetime

import re

import pymysql

import requests

url = "https://www.gushiwen.org/"

headers = {

'User-Agent': "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"}

class Spiderpoem(object):

conn = pymysql.Connect(host="localhost", port=3306, user="root", password='mysql', database='poem_data',

charset="utf8")

cs1 = conn.cursor()

def get_requests(self, url, headers=None):

"""发送请求"""

resp = requests.get(url, headers=headers)

if resp.status_code == 200:

# print(resp.request.headers)

return resp.text

return None

def get_parse(self, response):

"""解析网页"""

re_data = {

"title": r'

.*?(.*?).*?

',

"author": r'

.*?class="source">.*?(.*?).*?(.*?).*?

',

"content": r'

(.*?)

'

}

titles = self.reg_con(re_data["title"], response)

authors = self.reg_con(re_data["author"], response)

poems_list = self.reg_con(re_data["content"], response)

contents = list()

for item in poems_list:

ite = re.sub(r'<.*?>|\s', "", item)

contents.append(ite.strip())

for value in zip(titles, authors, contents):

title, author, content = value

author = "".join([author[0], '.', author[1]])

poem = {

"title": title,

"author": author,

"content": content

}

yield poem

def reg_con(self, params, response):

"""正则匹配"""

if not response:

return "请求错误"

param = re.compile(params, re.DOTALL) # re.DOTALL 匹配换行等价于re.S

result = re.findall(param, response)

return result

@classmethod

def save_data(cls, poem):

title = poem.get("title")

author = poem.get("author")

content = poem.get("content")

crate_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

sql = "insert into poem(title,author,content,create_time) values('{}','{}','{}','{}')".format(title, author,

content,

crate_time)

count = cls.cs1.execute(sql)

print(count)

cls.conn.commit()

def main(self):

resp = self.get_requests(url, headers)

for it in self.get_parse(resp):

self.save_data(it)

self.cs1.close()

self.conn.close()

if __name__ == '__main__':

Spiderpoem().main()

总结

以上所述是小编给大家介绍的python 爬取古诗文存入mysql数据库的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文标题: python 爬取古诗文存入mysql数据库的方法

本文地址: http://www.cppcns.com/jiaoben/python/297767.html

python爬取新闻存入数据库_python 爬取古诗文存入mysql数据库的方法相关推荐

  1. python随机数据库_Python实现生成随机数据插入mysql数据库的方法

    本文实例讲述了Python实现生成随机数据插入mysql数据库的方法.分享给大家供大家参考,具体如下: 运行结果: 实现代码: import random as r import pymysql fi ...

  2. 用python将word文档导入数据库_python读取word文档,插入mysql数据库的示例代码

    表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding: ...

  3. python写入mysql数据库_python调用http接口,数据写入mysql数据库并下载录音文件

    写个脚本一共完成了三件事: 第一,python调用http接口, 第二,把调用到的数据写入mysql数据库, 第三,python调用wsdl接口,获取录音文件, import time import ...

  4. python创建mysql数据库_Python:如何使用PyMySQL创建mysql数据库?

    我使用python 3.6,我使用PyMySQL连接mysql. 我将创建几个数据库.我想编写一个Python脚本来轻松创建和删除它们. connection = pymysql.connect(ho ...

  5. python读取excel写入数据库_python读取Excel内容并写入MySQL数据库脚本

    准备Excel(test.xlsx) 导库 import pymysql import xlrd 完整代码 import pymysql import xlrd def connect_databas ...

  6. mysql床数据库的命令_3种PHP连接MYSQL数据库的常用方法

    对于PHP入门用户来说,我们只要掌握基本的数据库写入.读取.编辑.删除等基本的操作就算入门,也可以写出简单的程序出来,比如留言本.新闻文章系统等等. 在整个过程中,MySQL数据库的连接也是比较重要的 ...

  7. mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...

    本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...

  8. php mysql主从延迟_如何解决主从数据库同步延迟问题?php连接 mysql 数据库如何添加一个公共的配置文件50...

    在上一篇文章中,小编为您详细介绍了关于<图上属标注的什么样元器件?火车购票明明显示无座为什么样乘车后却发现有很多空座>相关知识.本篇中小编将再为您讲解标题如何解决主从数据库同步延迟问题?p ...

  9. mysql linux附加数据库文件夹,Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

最新文章

  1. 硬刚一周,3W字总结,一年的经验告诉你如何准备校招!
  2. 八字喜用神php源码,免费查八字喜用神的软件 通关用神
  3. JAVA String 相加编译器发生了什么?
  4. mysql双主同步一个库,CNESA
  5. mysql 一对一关联查询_学习ThinkPHP的第20天--MySQL事务操作、查询事件、一对一关联...
  6. 案例:返回固定页面的http服务器
  7. 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦
  8. 夺命雷公狗---Smarty NO:19 html_options函数
  9. Spring Cloud中如何保证各个微服务之间调用的安全性
  10. 流行的JavaScript库 ——jQuery
  11. 开课吧Java:构建微服务时的三大常见错误
  12. Multi-statement transaction required more than ‘max_binlog_cache_size‘ bytes of storage
  13. 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop
  14. 网口压线顺序_网线水晶头接法
  15. 基于中科院-CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征MATLAB源码介绍
  16. 倒计时 1 天丨微信大数据挑战赛,即将启动报名
  17. 邮箱客户端程序的实现
  18. OPNET入门2-Basic Process
  19. MySQL死锁解决之道
  20. jvm原理解析--不疯魔不成活

热门文章

  1. c语言表达式10 3的结果是,C语言程序设计--第3讲运算符与表达式.ppt
  2. mac安装虚拟机centos7_虚拟机------安装centos7 系统(四)
  3. 如何与Ansible共同托管GitHub和GitLab
  4. linux gnome_GNOME,生日快乐:喜欢这个Linux桌面的8个理由
  5. 北大信科学院实验室_从实验室科学家到开放科学软件开发人员
  6. java/02/java运算符,java逻辑控制,java方法的定义及使用
  7. Bootstrap HTML 编码规范之布尔型属性
  8. NORDIC 52832开发1之环境搭建及PTR5618模块性能测试
  9. SLAM Cartographer(18)后端优化问题求解器
  10. php绕过验证,PHP-Nuke绕过识别码验证漏洞