用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
时间: 2024-08-02 07:03:38

用python3.x与mysql数据库构建简单的爬虫系统(转)的相关文章

python3.4连接mysql数据库的方法

python3.4连接mysql数据库的方法 发布时间:2014-08-04编辑:www.jbxue.com 本文介绍了python3.4连接mysql数据库的方法,在python3.4中不能用mysqldb连接mysql,可以使用pymysql完成连接mysql数据库,需要的朋友参考下. 在python3.4中用原来python2.7的mysqldb已不能连接mysql数据库了. 喜欢mysqldb的朋友,可以参考: Python实例 mysqldb操作数据库 python MySQLdb操作

mysql数据库很简单操作

进入linux系统 root   >/usr/bin/mysql -u root mysql>show databases;                    #查看数据库 mysql>use  testtable;                        #testtable 为所要查看的库,应用数据库 mysql>show tables;                          #查看所有表 mysql>desc abc_table          

Java连接MySQL数据库及简单操作代码

1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: "我的电脑"-> "属性" -> "高级" -> "环境变量",在系统变量那里编辑clas

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn

MySQL数据库的简单操作

[一]JDBC驱动分类: 1:JDBC--ODBC 桥驱动. 在程序开发中不用此驱动类型,因为操作性能太低. 2:纯JDBC链接(JDBC本地驱动:本地协议纯JDBC驱动). 3:JDBC网络驱动. 4:数据库的操作过程: 〈1〉打开数据库的服务                    〈2〉连接数据库,连接的时候以表达都要输入用户名和密码. 〈3〉操作数据库:创建表, 查询表, 跟新纪录.   〈4〉数据库的操作:Statement,  PreparedStatement. 〈5〉数据库的查询:

linux操作mysql数据库常用简单步骤

连接mysql数据库: 主要看mysql安装在哪一个目录下: mysql -h主机地址 -u用户名 -p用户密码 或者mysql -h ip地址 -u  zaiai -p zaiai 或者/var/email/mysql/bim/mysql mysql数据库中sql修改字段类型 首先说明一下: 在mysql数据库中可以对表的字段类型进行修改的,这样的好处是正常情况下原来的数据不会丢失的. 它的语法规则是:alter table newexample modify id char(20); 这里详

[转]一个备份MySQL数据库的简单Shell脚本

本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和cronta

mysql 数据库的简单操作 2

1怎么对数据表字段进行添加 这是一个完整的数据表,现在要添加一个字段Class 输入命令 ALTER TABLE 表名 add 字段名 字段类型 可跟可不跟default 这个是默认值. 例子:这样就添加成功了 如何让删除一个主键约束,当设有自增长时 要先删除自增长alter table 表名change id id int ; alter table 表名 drop primary key; 查询出房费大于200的Accounts seletct Accounts from guest whe

Python3 pymysql 访问MySql数据库

使用pymysql来访问MySQL数据库,注意,有些使用PyMySQL,Python2是mysqldb 如没该module则安装:pip install pymysql (本人Java转Python,还有java编写习惯,有错误请及时提出,相互交流) 1.定义获取数据库连接的Module, DataBase.py import pymysql class MySQLDB: __config={ 'host' : '127.0.0.1', 'port' : 3306, 'user' : 'root