用python3.x与mysql数据库构建简单的爬虫系统(转)
这是在博客园的第一篇文章,由于本人还是一个编程菜鸟,也写不出那些高大上的牛逼文章,这篇文章就是对自己这段时间学习python的一个总结吧。
众所周知python是一门对初学编程的人相当友好的编程语言,就像本屌丝一样,一学就对它产生好感了!当然,想要精通它还有很多东西需要学习。那废话不多说了,下面我就来说一下如何用python3.x与mysql数据库构建一个简单的爬虫系统(其实就是把从网页上爬下来的内容存储到mysql数据库中)。
首先就是搭建环境了,这里就简介绍一下我的环境吧。本机的操作系统是win7,python版本是3.3,mysql数据库版本是5.6,mysql-wokebench版本是5.2。
环境搭建完后,就可以开始来写爬虫了。这里实验的网站是鼠绘动漫网(本人是个漫画迷^_^)。先去网站踩点,寻找我们需要的内容,这里我只需要爬网站的每一话
漫画的名字与各漫画的图片链接。下面就直接上代码啦

import urllib.request
import re
from mysql.connector import * #爬取整个网页的方法
def open_url(url):
req=urllib.request.Request(url)
respond=urllib.request.urlopen(req)
html=respond.read().decode('utf-8')
return html #爬取每个页面中每一话漫画对应的链接
def get_url_list(url):
html=open_url(url)
p=re.compile(r'<a href="(.+)" title=".+ <br>.+?">')
url_list=re.findall(p,html)
return url_list #自动进入每一话漫画对应的链接中爬取每一张图片对应的链接并插入到mysql数据库
def get_img(url):
#获取每个页面中每一话漫画对应的链接
url_list=get_url_list(url)
#连接mysql数据库
conn=connect(user='root',password='',database='test2')
#创建游标
c=conn.cursor()
try:
#创建一张数据库表
c.execute('create table cartoon(name varchar(30) ,img varchar(100))')
except:
#count用来计算每一张网页有多少行数据被插入
count=0
for each_url in url_list:
html=open_url(each_url)
p1=re.compile(r'<img src="(.+)" alt=".+?>')
p2=re.compile(r'<h1>(.+)</h1>')
img_list=re.findall(p1,html)
title=re.findall(p2,html)
for each_img in img_list:
c.execute('insert into cartoon values(%s,%s)',[title[0],each_img])
count+=c.rowcount
print('有%d行数据被插入'%count) finally:
#提交数据,这一步很重要哦!
conn.commit()
#以下两步把游标与数据库连接都关闭,这也是必须的!
c.close()
conn.close() num=int(input('前几页:'))
for i in range(num):
url='http://www.ishuhui.com/page/'+str(i+1)
get_img(url)

这是数据库的结果:
代码已经注释的很清晰了。这里需要注意的是要去下载mysql-connector-python模块,这是一个python与mysql连接的模块,直接
pip install mysql-connector-python --allow-external mysql-connector-python
可以看出用python写爬虫并把数据存入数据库是很简单的,这也是python优雅的地方!当然,这只是一个很简单的爬虫系统,还有很多细节要去完善,只适合小
数据。但是学习都是从简单的开始嘛。
http://www.cnblogs.com/tester-zhenghan/p/4887838.html
用python3.x与mysql数据库构建简单的爬虫系统(转)的更多相关文章
- Mysql数据库的简单介绍与入门
Mysql数据库的简单介绍与入门 前言 一.下载与安装 1.下载 官网下载MYSQL5.7.21版本,链接地址https://www.mysql.com/downloads/.下载流程图如下: 找到M ...
- python3.4连接mysql数据库的方法
python3.4连接mysql数据库的方法 发布时间:2014-08-04编辑:www.jbxue.com 本文介绍了python3.4连接mysql数据库的方法,在python3.4中不能用mys ...
- PHP连接局域网MYSQL数据库的简单实例
PHP连接局域网MYSQL数据库的简单实例 [php] view plaincopy <?PHP /** * php连接mysql数据库 * by www.jbxue.com */ $conn= ...
- 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理
一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- linux操作mysql数据库常用简单步骤
连接mysql数据库: 主要看mysql安装在哪一个目录下: mysql -h主机地址 -u用户名 -p用户密码 或者mysql -h ip地址 -u zaiai -p zaiai 或者/v ...
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- Go 连接 mysql 数据库的简单测试.
1. import 的时候 总是很慢 容易失败 所以 优先导入几个必须要的包 go get github.com/go-sql-driver/mysql 安装完之后 会在gopath 目录下发现相关的 ...
- python3中的mysql数据库操作
软硬件环境 OS X EI Capitan Python 3.5.1 mysql 5.6 前言 在开发中经常涉及到数据库的使用,而python对于数据库也有多种解决方法.本文以python3中的mys ...
随机推荐
- 性能是全新的 SEO
作为一个前端project师,那不只就是公开地处理那些美丽的html5, css3 和javascript特效.小而重要的一部分工作就是要让项目朝着代码稳定和代码标准方向进展.设计.信息结构以及后台限 ...
- Windows Server 2012 R2在桌面上显示计算机/网络图标
原文 Windows Server 2012 R2在桌面上显示计算机/网络图标 从Windows2012开始,微软取消了服务器桌面个性化选项,如何重新调出配置界面,可以使用微软命令调出.具体方法如下: ...
- ueditor文本编辑器的使用
1,头部引用 <link href="ueditor/themes/default/css/ueditor.css" rel="stylesheet" t ...
- WCF 部署时,soap:address location 显示的是电脑名,而不是ip地址
部署WCF服务时,发现soap:address location 和wsdl:import location 显示是电脑名,而不是ip地址,这样外面公司的人就无法下载剩下的wsdl,post也会往错误 ...
- android中获取屏幕的信息
获取屏幕信息比较简单,可以通过android的sdk自带的工具类DisplayMetrics.话不多说,上代码: // 获取屏幕的信息 DisplayMetrics dm = new DisplayM ...
- STL内存分配
STL内存创建 Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源 1. Stl内存创建基类模板__malloc_alloc_tem ...
- IBatis增删改差的实现以及注意点
此次进讲述对表操作的实现细节.废话不多说,代码见真章. <?xml version="1.0" encoding="utf-8" ?> <sq ...
- 文件搜索神器everything 你不知道的技巧总结
everything这个软件用了很久,总结了一些大家可能没注意到的技巧,分享给大家 1.指定文件目录搜索示例: TDDOWNLOAD\ abc 在所有TDDOWNLOAD文件夹下搜索包含 ...
- 开源Math.NET基础数学类库使用(02)矩阵向量计算
原文:[原创]开源Math.NET基础数学类库使用(02)矩阵向量计算 开源Math.NET基础数学类库使用系列文章总目录: 1.开源.NET基础数学计算组件Math.NET(一)综合介绍 ...
- DOM手术台
CSS分类 排队: <div id="box" style="width:200px;border:1px solid red color:red;font-siz ...