python爬取新闻存入数据库_python 爬取古诗文存入mysql数据库的方法
使用正则提取数据,请求库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数据库的方法相关推荐
- python随机数据库_Python实现生成随机数据插入mysql数据库的方法
本文实例讲述了Python实现生成随机数据插入mysql数据库的方法.分享给大家供大家参考,具体如下: 运行结果: 实现代码: import random as r import pymysql fi ...
- 用python将word文档导入数据库_python读取word文档,插入mysql数据库的示例代码
表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding: ...
- python写入mysql数据库_python调用http接口,数据写入mysql数据库并下载录音文件
写个脚本一共完成了三件事: 第一,python调用http接口, 第二,把调用到的数据写入mysql数据库, 第三,python调用wsdl接口,获取录音文件, import time import ...
- python创建mysql数据库_Python:如何使用PyMySQL创建mysql数据库?
我使用python 3.6,我使用PyMySQL连接mysql. 我将创建几个数据库.我想编写一个Python脚本来轻松创建和删除它们. connection = pymysql.connect(ho ...
- python读取excel写入数据库_python读取Excel内容并写入MySQL数据库脚本
准备Excel(test.xlsx) 导库 import pymysql import xlrd 完整代码 import pymysql import xlrd def connect_databas ...
- mysql床数据库的命令_3种PHP连接MYSQL数据库的常用方法
对于PHP入门用户来说,我们只要掌握基本的数据库写入.读取.编辑.删除等基本的操作就算入门,也可以写出简单的程序出来,比如留言本.新闻文章系统等等. 在整个过程中,MySQL数据库的连接也是比较重要的 ...
- mysql数据库解压安装教程_MySQL数据库之windows 10下解压版MySql安装配置方法教程...
本文主要向大家介绍了MySQL数据库之windows 10下解压版MySql安装配置方法教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. windows 10 下安装解压版的 ...
- php mysql主从延迟_如何解决主从数据库同步延迟问题?php连接 mysql 数据库如何添加一个公共的配置文件50...
在上一篇文章中,小编为您详细介绍了关于<图上属标注的什么样元器件?火车购票明明显示无座为什么样乘车后却发现有很多空座>相关知识.本篇中小编将再为您讲解标题如何解决主从数据库同步延迟问题?p ...
- mysql linux附加数据库文件夹,Linux全攻略--MySQL数据库配置与管理
MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...
最新文章
- 硬刚一周,3W字总结,一年的经验告诉你如何准备校招!
- 八字喜用神php源码,免费查八字喜用神的软件 通关用神
- JAVA String 相加编译器发生了什么?
- mysql双主同步一个库,CNESA
- mysql 一对一关联查询_学习ThinkPHP的第20天--MySQL事务操作、查询事件、一对一关联...
- 案例:返回固定页面的http服务器
- 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦
- 夺命雷公狗---Smarty NO:19 html_options函数
- Spring Cloud中如何保证各个微服务之间调用的安全性
- 流行的JavaScript库 ——jQuery
- 开课吧Java:构建微服务时的三大常见错误
- Multi-statement transaction required more than ‘max_binlog_cache_size‘ bytes of storage
- 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop
- 网口压线顺序_网线水晶头接法
- 基于中科院-CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征MATLAB源码介绍
- 倒计时 1 天丨微信大数据挑战赛,即将启动报名
- 邮箱客户端程序的实现
- OPNET入门2-Basic Process
- MySQL死锁解决之道
- jvm原理解析--不疯魔不成活
热门文章
- c语言表达式10 3的结果是,C语言程序设计--第3讲运算符与表达式.ppt
- mac安装虚拟机centos7_虚拟机------安装centos7 系统(四)
- 如何与Ansible共同托管GitHub和GitLab
- linux gnome_GNOME,生日快乐:喜欢这个Linux桌面的8个理由
- 北大信科学院实验室_从实验室科学家到开放科学软件开发人员
- java/02/java运算符,java逻辑控制,java方法的定义及使用
- Bootstrap HTML 编码规范之布尔型属性
- NORDIC 52832开发1之环境搭建及PTR5618模块性能测试
- SLAM Cartographer(18)后端优化问题求解器
- php绕过验证,PHP-Nuke绕过识别码验证漏洞