目标:获取海量表情包,存入数据库,然后搭建简单网站通过输入关键字获取对应的的表情包

这里我们的首先要爬取表情包的网站是这个网站:

http://www.doutula.com/photo/list/?page=0

我们先来分析一下这个网页的源代码:

源码里面可以发现我们需要的内容然后去用正则表达式获取,然后存入数据库

同时在源码最上面可以看见网页是utf-8编码的。

============================================================

注意,这里我们先说下navicat for MySQL:关于软件下载和MySQL安装之前博客说过了。

先是新建一个叫doutula的数据库

=============================================

然后在该数据库中新建一个表

===========================================

然后再在表中添加相应的id和name和imageUrl

这里要勾选上自动递增,我之前没勾选上的时候,会报错'id' doesn't have a default value

===============================================================

然后新建一个用户:

=======================

修改权限:

==============================

然后看代码吧:

#写在前面:python3.5 、win10 、navicat for MySQL、MySQL
#之前都是用的urllib.request里面的Request、urlopen方法去获取一个一个网页上的内容,今天换着用用requests模块import requests,re,pymysql
# 这里导入的pymysql模块,如果没有安装的用pip install pymysql安装一下#这里就是连接数据库的一个操作
db = pymysql.connect(host = '127.0.0.1', #主机,一般没有服务器就填本机吧port = 3306,        #端口,navicat创建数据库的时候端口就是默认是3306user = 'test1',     #这里是用户名,也是之前创建的password = '5531663',   # 密码db = 'doutula',     # 这里就是你在navicat新建的数据库名charset = 'utf8'    # 写入数据库的数据都是utf8编码的,千万注意不能写为utf-8
)
cursor = db.cursor()    #创建一个游标,通过游标去操作一些MySQL的语句#下面是爬取一个网页的内容
def getImage(i):urlBasic = 'http://www.doutula.com/photo/list/?page='   # 发现网页大概都长这模样,只是后面的数字不同url = urlBasic + '%s'%i      #得到完整的网页urlres = requests.get(url)     #得到一个html = res.textimageListRe = 'data-original="(.*?)"\s*alt="(.*?)"' #   分析网页后写的正则表达式imageList = re.findall(imageListRe,html)    # 获取name和imageUrl#print(imageList)for i in imageList:cursor.execute("insert into image(`name`,`imageUrl`) values('{}','{}')".format(i[1],i[0]))db.commit()for i in range(1138):   # 这里查看网页后发现一共就1137页print('正在爬取第{}页的数据'.format(i))getImage(i)db.close()  # 不要忘记了关闭数据库连接

==========================================

然后这边看一下导入数据库后的结果:

----------------------------------------------------

一共是八万条数据。。。

==============================================

然后就是网站方面了,写一个简单的网站,实现输入关键字得到对应的图片:

上代码:

# 我们所要达到的效果就是输入关键字然后就页面上显示相关的图片,图片我们并没有下载到本地,是直接从数据库里面调用的,所以这里也要连接数据库from flask import Flask
from flask import render_template
from flask import request
import pymysqlapp = Flask(__name__)   # 关于flask的操作之前博客提到过# 连接数据库
db = pymysql.connect(host='127.0.0.1',port=3306,user='test1',password='5531663',db='doutula',charset='utf8',cursorclass=pymysql.cursors.DictCursor,#这里默认从数据库中查到的数据返回回来是列表形式,这里改为了dict形式
)cursor = db.cursor()@app.route('/')
def index():return render_template('index.html')    # render_template模板能返回一个网页,而网页得存在新创建的templates文件夹里面才可以@app.route('/search')
def search():kw = request.args.get('kw')count = request.args.get('count')cursor.execute("select * from image where `name` like '%{}%' ".format(kw))#   这里是一个模糊匹配,就是匹配和你输入的关键字类似的name,关键字是要用'%{}%'代替,用format传入data = cursor.fetchmany(int(count)) # 这里fetchmany就是匹配count条数据库中的数据return render_template('index.html',images = data)app.run(debug = True)

然后里面的index.html如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>斗图网站</title>
</head>
<body>
<form action = '/search'>关键字:<input type = 'text' name = 'kw'><br>查询的数量:<input type = 'text' name = 'count' value = '100'><br><input type = 'submit' value = '查询'></form>{% for i in images %}
<img src = "{{i.imageUrl}}" alt = "{{i.name}}">
{% endfor %}</body>
</html># {{}}是放变量 {%%}是放方法

所形成的效果如下:

==========================================

然后我们试着搜索一下关键字:‘骚’

完成。效果还不错。。。。。。。。。。。。。。。。。。。。。

以上,如有不足,欢迎指出。Thanks~!

===========================

最后补充一下:

这样运行后只能在本机上访问,

如果改为:

app.run(host = '0.0.0.0' ,port = 5000, debug = 'True')

这样就可以使得同一个局域网内的电脑、手机都可以访问了,但是要现获得本机IP地址,

命令行里面输入ipconfig查看本机ip地址,然后在浏览器里面输入 IP地址:5000便可正常访问了

2017.11.19 19:56.................................

=======================================

关于Python爬虫之获取海量表情包+存入数据库+搭建网站通过关键字查询表情包相关推荐

  1. python爬虫爬取大学排名并存入数据库进行数据可视化

    这是本人的期末大作业,题目要求如下: 对中国大学专业排名网站中2021年,计算机科学与技术专业,进行数据爬取和数据可视化. URL地址:https://www.shanghairanking.cn/r ...

  2. 「Python爬虫系列讲解」十四、基于开发者工具 Network 的数据抓包技术

    本专栏是以杨秀璋老师爬虫著作<Python网络数据爬取及分析「从入门到精通」>为主线.个人学习理解为主要内容,以学习笔记形式编写的. 本专栏不光是自己的一个学习分享,也希望能给您普及一些关 ...

  3. Python爬虫实战——获取电影影评

    Python爬虫实战--获取电影影评 前言 第三方库的安装 示例代码 效果演示 结尾 前言 使用Python爬取指定电影的影评, 注意:本文仅用于学习交流,禁止用于盈利或侵权行为. 操作系统:wind ...

  4. python爬虫(14)获取淘宝MM个人信息及照片(中)

    python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 在上 ...

  5. python爬虫(14)获取淘宝MM个人信息及照片(上)

    python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 网上 ...

  6. 小程序获取用户信息 php发送数据库,qq小程序如何获取用户信息并存入数据库实例...

    今天给大家带来qq小程序如何获取用户信息并存入数据库的实例,希望能够帮助到大家,让大家不仅知道如何下载qq小程序源码,还能懂得去何用,如何去改,甚至是如何去创造,如果你有好的qq小程序源码出售,可以联 ...

  7. python 爬虫入门——获取页面代码

    常见的爬虫有很多:requests库,lxml库,re库,bs4库,urllib库等. 因为urllib是python自带的库,而包含urllib用法的requests库其实还挺好用的(各有各的好,这 ...

  8. Python 爬虫:获取 JS 动态内容——应用宝搜索应用

      本内容主要介绍如何获取网页中 JS 动态生成的内容. 文章目录 1.1 Ajax 异步加载生成网页内容 1.2 从网页响应中找到 JS 脚本返回的数据 1.2.1 找到 JS 请求的数据接口 1. ...

  9. python爬虫如何从一个页面进入另一个页面-Python爬虫如何获取页面内所有URL链接?本文详解...

    如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL. 什么是Beautiful Soup ...

最新文章

  1. 数学的关键是概念而非技巧
  2. Sangfor_AC用户不在线但在“在线用户管理”里有显示
  3. android 炫酷背景,炫酷-背景图垂直循环滚动登录页,Android RecyclerView实现
  4. Python学习笔记之基本数据结构方法
  5. Datical为数据库添加持续交付能力
  6. 面试中你必须要知道的语言陷阱
  7. 2013年小结及2014年展望
  8. HTML之六:图像的热区连接
  9. Wireshark 命令行捕获数据
  10. firebase auth_如何使用auth和实时数据库构建Firebase Angular应用
  11. ubuntu linux本地源,如何制作UbuntuLinux操作系统的本地源?
  12. pythonseleniumide使用_selenium第二课(脚本录制seleniumIDE的使用)
  13. quickServer介绍
  14. 蓝桥杯 ALGO-157 算法训练 阶乘末尾
  15. mysql把字段拆成两个_MySQL数据库中,将一个字段的值分割成多条数据显示
  16. 数字藏品APP源码,无加密
  17. flutter配置高德地图定位
  18. Latex改变section标题的编号方式
  19. java基础知识总结(三)
  20. 河南大学计算机学院魏倩,何欣-计算机与信息工程学院官网

热门文章

  1. 随想:区块链提供数字科技霸权之外的第三选项
  2. 洛谷P1710 地铁涨价
  3. 在CorelDRAW中的自定义彩虹笔刷创建迷幻背景
  4. 跟班学习JavaScript第二天———流程控制、分支、循环、函数
  5. Power Supply驱动框架
  6. compiler java_使用JavaCompiler编译java源文件
  7. 使用ICAP原语实现SPI-Multiboot加载
  8. 为什么大家都想进入IT行业?IT行业到底好不好?
  9. 搭建无线监控云存储服务器,mac 篇二:自建docker视频录像机NVR存储-家用摄像头云存储服务zoneminder...
  10. 大学计算机作业互评评语简短,大学学生互评评语100字简短