books

爬取数据来着

被刻印的时光 ゝ 提交于 2019-12-19 08:35:27
{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "http://bang.dangdang.com/books/fivestars/01.41.00.00.00.00-recent30-0-0-1-1\n", "http://bang.dangdang.com/books/fivestars/01.41.00.00.00.00-recent30-0-0-1-2\n", "http://bang.dangdang.com/books/fivestars/01.41.00.00.00.00-recent30-0

C# xml数组的序列和反序列化

元气小坏坏 提交于 2019-12-16 16:42:13
先来看xml <?xml version="1.0"?> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Person> <Name>小莫</Name> <Age>20</Age> <Books> <Book> <Title>马列主义</Title> <ISBN>SOD1323DS</ISBN> </Book> </Books> </Person> <Person> <Name>小红</Name> <Age>20</Age> <Books> <Book> <Title>思想</Title> <ISBN>SID1323DSD</ISBN> </Book> </Books> </Person> </root> 这个xml包含多个Person对象,每个Person对象又包含一个Books对象和多个book对象,反序列化XML时关键是看怎么理解xml的结构,理解正确了就很好构造对应的类,理解错了可能就陷入坑里。 首先root是整个文件的根节点,它是由多个Person组成的。 [System.SerializableAttribute()] [System.Xml.Serialization.XmlTypeAttribute

DRF Django REST framework 之 路由器与版本控制组件(七)

假装没事ソ 提交于 2019-12-16 16:41:21
路由器 一些Web框架提供了用于自动确定应如何将应用程序的URL映射到处理传入请求的逻辑的功能。 而DRF的路由器组件也提供了一种简单,快速且一致的方式将视图逻辑映射到一组URL上。 路由器组件的使用 配合include 第一步:导入模块 from rest_framework import routers 第二步:实例化一个router对象 router = routers.SimpleRouter() 第三步:将需要自动生成url的接口注册到router中 router.register( ' books ' , views.BookView) 第四步:生成url urlpatterns = [ re_path( ' ' , include( router.urls )), ] 路由器简单的使用 from rest_framework import routers router = routers.SimpleRouter() router.register( ' books ' , BookView) router.register( ' users ' , UserView) urlpatterns = router.urls register 方法有两个强制性参数 : prefix - 用于这组路由的URL前缀。 viewset - 视图集类。 (可选)其他参数:

Python高级应用程序设计任务

烂漫一生 提交于 2019-12-16 14:14:40
用Python实现一个面向主题的网络爬虫程序,并完成以下内容: (注:每人一题,主题内容自选,所有设计内容与源代码需提交到博客园平台) 一、主题式网络爬虫设计方案(15分) 1.主题式网络爬虫名称 纵横中文网 2.主题式网络爬虫爬取的内容与数据特征分析 爬取小说网完本的页数 关于该网页的小说名、作者、分类情况 3.主题式网络爬虫设计方案概述(包括实现思路与技术难点) 思路:本次设计方案主要依靠request库对目标页面进行信息的爬取采集,再用BeautifulSoup对数据进行清洗, 用find_all方法取标签,再从标签中取数据值。 技术难点:对于小说爬取内容的数据清理和窗口广告。 二、主题页面的结构特征分析(15分) 1.主题页面的结构特征 http://book.zongheng.com/store/c0/c0/b0/u0/p1/v9/s1/t0/u0/i1/ALL.html 了解 纵横中文网完本url,修改不同字节获取数据 2.Htmls页面解析 div class=“bookname”爬取需要的信息 tagrget=“blank”所要的分类小说 3.节点(标签)查找方法与遍历方法 soup = BeautifulSoup(book, "html.parser") #获取div div = soup.find_all("div", "bookname")

Elasticsearch—CRUD

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-09 15:50:50
一.Elasticsearch基本操作索引的Restapi :增删改查   1.PUT创建一个资源 1.1 创建一个索引 put my_index(类似于数据库中建表) 1.2创建一个索引 my_index1 PUT /my_index1 { "settings": { "number_of_shards" : 1, "number_of_replicas" : 1 } } my_index:为索引名称(相当于数据库的表) doc :为索引的类型,可自己指定名称。 dynamic:用于配置动态映射,当插入数据的时候遇上如果数据库字段中有,索引中没有的字段,以下三种设定值会起到不同的效果 true:动态添加新的字段–缺省 false:忽略新的字段(正常插入数据) strict:如果遇到新字段抛出异常 设置分片 number_of_shards:每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。 number_of_replicas:每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。 id,name,sex,title,city:分别为字段名称(可根据自己的需求创建多个字段) 类型为text时表示需要对该字段进行分词, analyzer类型为keyword时表示不需要对该字段进行分词 1.3 索引下添加文档 (类似于数据库中添加一条记录)

全栈项目|小书架|服务器端-NodeJS+Koa2 实现搜索功能

我只是一个虾纸丫 提交于 2019-12-08 21:37:29
搜索功能会包含:热搜、搜索列表。 热搜功能在电商的搜索中经常看到,热搜数据的来源有两种 用户真实的搜索数据,根据算法进行排序 人为推送的数据 想想微博热搜是可以买的就知道热搜功能多么重要了。 我采用第二种方式简单实现。 第一种方式由于我目前还未实现,没办法介绍。 大伙儿可以参考下面几篇文章介绍热搜实现: Redis简单案例(一) 网站搜索的热搜词 Redis 与搜索热词推荐 热搜算法是怎样实现的,具体些,求解? 热搜 前端页面效果图如下: 前端页面热搜只显示图书名称。因此表示一本图书只要返回 图书 id ,图书名称 即可。 为了方便实现,直接在路由中返回了 JSON 数据,省略了查询数据库的步骤,伪代码如下: // 获取热搜书籍 router.get('/search/hot', async ctx => { let hotBooks= [ { "id":10001, "name":"深入浅出Node.js" }, { "id":10003, "name":"解忧杂货店" }, { "id":10005, "name":"安徒生童话故事集" } ] ctx.body = JSON.stringify(hotBooks) }) 以上就是热搜的实现,在客户端调用: http://192.168.**.***:3000/v1/book/search/hot ,即可。 搜索列表

自动加月份

流过昼夜 提交于 2019-12-08 10:12:31
import pandas as pdfrom datetime import date,timedelta # # # # # # # # # # # # # # # # # def add_month(d, md):#md为月份准备加入多少 yd = md // 12# 超过12个月,加一年 m = d.month + md % 12# 如果加入的月份大于12,除一下还是这个月份+余数即可 if m != 12:# 如果加入的月份不等于12 yd += m // 12 m = m % 12 return date(d.year + yd, m, d.day)# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # skiprows=5 标题栏从第6行开始。usecols="c:f" 左侧A,B列不要读,从C列读到F列 dtype={'ID':str} 把ID列定义为strbooks=pd.read_excel("out.xlsx",skiprows=5,usecols="c:f",dtype={'ID':str,'性别':str,'日期':str})# print(books)start=date(2019,1,1)for i in books.index: books['ID'].at[i]=i+1

爬取数据来着

穿精又带淫゛_ 提交于 2019-12-06 22:53:28
{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "http://bang.dangdang.com/books/fivestars/01.41.00.00.00.00-recent30-0-0-1-1\n", "http://bang.dangdang.com/books/fivestars/01.41.00.00.00.00-recent30-0-0-1-2\n", "http://bang.dangdang.com/books/fivestars/01.41.00.00.00.00-recent30-0

使用IDEA创建Maven整合SSM

这一生的挚爱 提交于 2019-12-06 08:04:05
创建Maven项目 然后一直下一步下一步直至完成。 在main下创建java包和resources包 选择创建的java右键Mark Directory as->Sources Root 选择创建的resources右键Mark Directory as->Test Sources Root 在java下创建包结构 com.xxx.controller com.xxx.dao或者com.xxx.mapper com.xxx.entity com.xxx.service 配置 依赖加载 <dependencies> <!--Junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-- 数据库连接池 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0<

全栈项目|小书架|服务器端-NodeJS+Koa2实现首页图书列表接口

邮差的信 提交于 2019-12-06 06:20:25
通过上篇文章 全栈项目|小书架|微信小程序-首页水平轮播实现 我们实现了前端(小程序)效果图的展示,这篇文章来介绍服务器端的实现。 首页书籍信息 先来回顾一下首页书籍都有哪些信息: 从下面的图片可以看出目前一本图书信息主要有: 图片字段 名称字段 作者字段 出版社字段 除了以上前端页面中可见的信息外,在服务器开发中还需要给每一条记录(数据)都加上下面的几个字段: 创建时间字段 更新时间字段 删除时间字段 最后完成的数据库表如下: ps:由于数据库是直接导入的,之前的数据库是没有时间字段的,所以前面字段为 null 书籍实体对象创建 根据上面的分析,我们知道一本图书实体需要哪些字段去表示,那么在 NodeJS 中如何根据数据模型创建对应的数据表格呢。下面的数据模型 model 主要参考了 这个文件 ps: 所有字段前面加了 bk ,这是原有数据库直接导入没有做修改。去掉 bk 后字段会更容易理解一下。 Book.init({ // 图书 id,主键 bkid: { type: Sequelize.INTEGER, primaryKey: true }, // 图书类型 bkclass: Sequelize.INTEGER, // 图书作者 bkauthor: Sequelize.STRING, // 图书名称 bkname: Sequelize.STRING, // 图书出版社