课堂上老师布置了一个作业,如下图所示:


就是简单写一个借书系统。

大概想了一下流程,登录——>验证登录信息——>登录成功跳转借书界面——>可查看自己的借阅书籍以及数量。。。

登录可以很快实现,但借书界面里的数据怎么来呢?

不可能百度搜索书籍信息,然后一条一条来复制粘贴吧

所以,我想到了Python。

思路:通过Python爬取指定某读数平台,然后将解析的数据直接存到数据库。

URL:https://weread.qq.com/

打开开发者工具,我们可以很快锁定所要爬取的信息;

学过jQuery解析库的,可以发现用pyquery库选择对应class属性,可以很快获取到需要的信息;

拿到数据后,使用pymysql将数据存入数据库,需要提前创建好数据库和表噢,当然也可以用代码实现;


因为该读数平台的书籍信息是动态加载,所以一次可以爬20条,但可以通过循环index,来获取多条数据。或者,也可以通过selenium库来实现网页加载自动化,从而拿到所有数据。

# -*- coding=utf-8 -*-
from pyquery import PyQuery
import requests
import pymysqlheader = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ""AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"
}# 获取html源码
def getUrl(url):re = requests.get(url, headers=header)return re# 获取数据并清洗
def getData(html):doc = PyQuery(html)name = doc(".wr_bookList_item_title")author = doc(".wr_bookList_item_author a")percent = doc(".wr_bookList_item_reading_percent")desc = doc(".wr_bookList_item_desc")lists = []for i in range(len(name)):try:li = [name[i].text, author[i].text, percent[i].text, desc[i].text]except Exception as e:li = [name[i].text, author[i].text, "null", desc[i].text]lists.append(li)return lists# 连接数据库,存取数据
def saveDate(lists):db = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='zhy123',database='mybooks',charset='utf8')cursor = db.cursor()for num in lists:sql = "insert into books_copy1(title,author,percent,prec) " \"VALUES ('%s','%s','%s','%s')" % (num[0], num[1], num[2], num[3])try:cursor.execute(sql)db.commit()except Exception as e:print(e)db.rollback()print("保存成功!!!")def main():url = 'https://weread.qq.com/web/category/700002'html = getUrl(url).content.decode('utf-8')lists = getData(html)# print(lists)saveDate(lists)if __name__ == '__main__':main()

注意了,直接复制此代码运行,是会报错的喔!

需要确定自己电脑是否已经安装了mysql,其次修改代码里的用户名和密码,最后是数据库和表的名称喔。

我的简单借书小系统⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

登录界面:

借书界面:

我的借书界面:

前端界面有些马虎了,凑合凑合O(∩_∩)O~

那就这样吧 byebye~~~

Python简单爬取图书信息及入库相关推荐

  1. Python 分布式爬取 InfoQ 信息

    Python 分布式爬取 InfoQ 信息 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/InfoQ #!/usr/bi ...

  2. 用python爬虫爬取微博信息

    用python爬虫爬取微博信息 话不多说,直接上代码! import requests from bs4 import BeautifulSoup from urllib import parse i ...

  3. Python简单爬取电影磁力链接

    Python简单爬取电影磁力链接 网页的链接:http://www.ygdy8.net/html/gndy/dyzz/list_23_2.html 打开你想要的电影:http://www.ygdy8. ...

  4. python 爬虫爬取小说信息

    1.进入小说主页(以下示例是我在网上随便找的一片小说),获取该小说的名称.作者以及相关描述信息 2.获取该小说的所有章节列表信息(最重要的是每个章节的链接地址href) 3.根据每个章节的地址信息下载 ...

  5. 复工复产,利用Python爬虫爬取火车票信息

    文章目录 Python 爬虫操作基本操作 python 标准库 urllib 获取信息 上传信息 python 标准库 urllib3 获取信息 上传信息 第三方库 requests 获取特征信息 模 ...

  6. python爬虫爬取房源信息

      目录 一.数据获取与预处理 二.csv文件的保存 三.数据库存储 四.爬虫完整代码 五.数据库存储完整代码 写这篇博客的原因是在我爬取房产这类数据信息的时候,发现csdn中好多博主写的关于此类的文 ...

  7. 读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储

    2019独角兽企业重金招聘Python工程师标准>>> 今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的 ...

  8. python 爬取企业注册信息_读书笔记(十)——python简单爬取企查查网企业信息,并以excel格式存储...

    今天这个小爬虫是应朋友,帮忙写的一个简单的爬虫,目的是爬取企查查这个网站的企业信息. 编程最终要的就是搭建编程环境,这里我们的编程环境是: python3.6 BeautifulSoup模块 lxml ...

  9. Python|简单爬取豆瓣网电影信息

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 欢迎加入团队圈子!与作者面对面!直接点击! 前言: 在掌握一些 ...

最新文章

  1. 背景图自适应屏幕居中显示,且不变形
  2. 寒假CF- WA了不要怕!
  3. GIT 源码管理-简介
  4. microsoft已暂时停用你的用户_Windows10 20年10月重大更新来了,但它已存在问题
  5. 【MySQL】在Windows下更改datadir
  6. 外媒:科学家首次探测到黑洞吞噬中子星
  7. 软件设计原则:内聚、耦合有哪几种类型?内聚度、耦合度如何比较?
  8. 【ElasticSearch】Es 源码之 MetaStateService 源码解读
  9. Berkeley DB Java Edition
  10. 2 lt lt 8运算 java_Java移位运算符 lt;lt; gt;gt; gt;gt;gt;_Java_七九推
  11. scrapy信号扩展
  12. 安装SQL2000时弹出“以前的某个程序安装已在安装计算机上创建挂起的文件操作、、、”...
  13. Java服务端获取微信小程序openid(简单实现,搞懂原理)
  14. Android即时通讯实现原理
  15. Error:java.lang.RuntimeException: Crunching Cruncher dialog_et_bg.9.png failed, see logs
  16. linux升级gfortran版本,Ubuntu下GCC、G++和gfortran版本切换
  17. 算力网络发展中的若干关键技术问题分析
  18. 音视频开发系列1:音视频开发基本概念
  19. UIColor的RGB定义颜色(灰色)
  20. matlab到word文字转变,Matlab代码或中文复制到word变成乱码的解决技巧

热门文章

  1. Qt Qwdget 汽车仪表知识点拆解1 速度表示
  2. EduCoder实践课程——Python零基础到精通 参考答案(四)
  3. 幼儿抽象逻辑思维举例_哈啰思维幼儿数学逻辑思维app下载-哈啰思维幼儿数学逻辑思维手机版 v1.0.1...
  4. Linux内核文件系统5
  5. 查询三级商品分类列表
  6. Arduino + ESP32-C3 + TFT(1.8‘ ST7735S)基础平台(实验二)玩具示波器
  7. 单片机初学者编程经常会碰到的问题及处理办法
  8. 腾讯位置 - 地址解析(结尾附视频)
  9. 剧版浪姐口碑爆了!数据告诉你,《三十而已》凭什么这么戳中观众的心
  10. 自学JavaScript第四天- JS 进阶:AJAX Promise Canvas