- 博客(21)
- 收藏
- 关注
原创 [python爬虫] fake-useragent设置随机请求头
尝试使用直到刚才还在百度随机请求头复制粘贴的我。。。发现了这个好东西wwww下载地址及详细使用方法 https://github.com/hellysmile/fake-useragentscrapy中设置在middlewares.py中设置如下代码from fake_useragent import UserAgent //导包class RandomUserAgentDow...
2019-10-17 23:27:44 441
原创 简单易学的redis的四种操作
准备工作首先启动redis-sever(服务器),通过cmd进入redis-cli(客户端)进行操作(还可以利用编程语言)字符串操作设置一个key形式: key : value设置username(key)为“abc”(value)设置key同时添加过期时间set age 18 EX 60 //设置过期时间是60秒ttl age // 查看age变量过期时间既可以...
2019-10-15 23:46:10 228
原创 大整数BigInterger的简单入门(vector实现)
什么是大整数BigInteger?假设某一数字有1000位,一般这种数字就是就叫BigInteger,这种数字即使使用unsigned long long 类型也无法表示(unsigned long long的最大值:18446744073709551615)如何处理BigInter?这个时候我们如何处理这种类型的数字呢?机器不能算,我们可以靠人工来计算, 就是小学生都会的简单加减乘除四则运...
2019-10-13 18:10:53 2185
原创 如何用scrapy连接mysql
IDE我用的是pycharm2018事先准备在已经写好一个爬虫的前提下进行,现在已经进入到存储数据阶段了,由于同步存入数据库效率太低,这里直接使用异步存入下面是我的items导包这里我们需要用到几个包from twisted.enterprise import adbapi //用于导入连接池from pymysql import cursors //用于导入cursor类p...
2019-10-13 10:41:42 966
原创 PAT 甲级1059 Prime Factors
这个题刚开始我的想法是:先构建一个素数表,范围在2~N内,刚开始用埃氏筛法,毕竟刚学到的不是,然后发现提示段溢出,想到最高20e大小的数组不太可能开的出来;后面改用sqrt(N)来计算,还是先出素数表,后对表遍历找目标值。样例倒是秒出,但是放上去跑的时候还是运行超时,测了一下int最高值,发现太慢了。。。再后来看了下书上的答案,他把计算素数和查找目标值同时进行,想了一下,如果先出表后对表遍历,...
2019-10-12 17:44:13 127
原创 素数问题——使用埃拉托斯特尼筛法
埃拉托斯特尼筛法(简称埃氏筛法),需要先确定一个素数(比如2)然后删除该素数的整数倍数,寻找一个在该素数右边且没有被筛掉的数字即为下一个素数2 3 4 5 6 7 8 9 10 11 12 13 14 15 (2是素数,筛掉2的倍数↓)2 3 4 5 6 7 8 9 10 11 12 13 14 15(2的下一个没有被筛掉的数字是3,3即为素数,筛掉3的倍数)2 3 4 5 6 7 8 ...
2019-10-12 15:08:29 399
原创 分数的四则运算
C语言的话不支持结构体内有函数,C++的话还是挺方便的代码还是挺容易懂的#include <iostream>#include<cstdio>#include<cmath>using namespace std;int gcd(int a, int b){ return !b ? a: gcd(b, a % b);}struct...
2019-10-06 17:47:07 217
原创 求最大公约数和最小公倍数
辗转相除法是求解最大公约数的最常用算法,书写时常用函数gcd(a,b)表示原理不加以证明上代码int gcd(int a, int b){ if(b == 0)return a; else return gcd(b , a % b);}还有一种简洁写法:int gcd(int a, int b){ return !b ? a : gcd(b, a % b)...
2019-10-06 16:14:28 293
原创 PAT 乙级1045/甲级1101 快速排序
PAT 乙级1045/甲级1101[题目传送门]这个题还是递推的思想要确定某一个元素是不是主元,一定要根据该元素左侧的最大值和右侧的最小值来确定,如果左侧的最大值都小于等于该元素,右侧的最小值都大于该元素,那么该元素就是主元(这个判别条件好处在于:当几个元素相同时,只会认为相同元素的最后一个元素是主元)那么可以利用两个数组,大小和给出的序列相同,一个从后往前遍历,记录当前元素到最后一个元素中...
2019-10-06 13:04:04 122
原创 PAT B1040/A1093 (有几个PAT)
这个题利用递推的思想,找每个A左侧有几个P,右侧有几个T,然后找到A时将A两边的P和T相乘然后计算他们的和即可首先要遍历字符串,计算出每个位置P的数量,遇到P数量加一,不是P就和上一个位置P的数量相同T和P做法一样,只不过反向遍历#include <iostream>#include<cstdio>#include<string>#include&l...
2019-10-06 10:32:20 135
原创 浅显易懂的归并排序(2-路归并)
原理将序列两两分组,然后归并为[n/2]个组,组内单独排序,然后将这些组归并为[n/4]个组,组内单独排序,以此类推,直到只剩一个组为止例:要将序列{66,12,33,57,64,27,18}进行2-路归并①第一趟 两两分组,得到四个组{66,12}、{33,57}、{64,27}、{18},组内单独排序,得到{{66,12},{33,57},{64,27},{18}}②第二趟,将四个组...
2019-10-05 11:47:04 296
原创 two pointers入门
two Pointers入门给定一个递增序列A[6] = {1,2,3,4,5,6};求序列中两个任意元素下标 i 和 j ,令这两个元素的和为某个特定的值m正常做只需用两重for循环遍历该数组求和然后输出结果即可for(int i = 0; i < n; i++){ for(int j = i+1 ; j < n; j++) { if(A[i] + A[j] ...
2019-10-04 19:11:40 158
原创 PAT B1030/A1085 完美数列(二分、two Pointers)
二分法PAT B1030/A1085 完美数列#include<cstdio>#include<algorithm>#include<vector>using namespace std;vector<long long> arr;int main(){ int N, p; scanf("%d%d", &N...
2019-10-04 19:10:05 174
原创 二分幂(快速幂)递归写法
给出三个正整数a ,b, m, (a < 1e9, b < 1e18, 1< m < 1e9 ) 求a的b次幂 % ma,b, m都是很大很大的数,以至于正常方法做基本都会溢出这个时候就可以用二分幂(快速幂),实质是和二分查找是一样一样的,二分查找是通过left 和right 不断缩小范围逼近正确结果,二分幂就是不断拆分ab次幂,直到拆到不能再拆为止,计算出结果,然后...
2019-10-04 12:05:41 628
原创 木棒切割问题——算法笔记P134
我理解的作者的意思就是先找到最长的那根木棒,然后利用对这根木棒二分出来的长度L再对其他木棒求,然后总数相加就是k了,和目标值K进行比对。left = 0,right = 最长木棒长度求得的木棒个数k >= K,下限left = mid + 1; k< K ,上限 right = mid;#include<cstdio>#include<algorithm&...
2019-10-03 18:47:12 1236 1
原创 二分查找入门
简单二分查找在数组内查找某一值的位置注: 数组用A[ ]表示二分查找顾名思义,就是把一段数据分成两个部分,通过某一条件的判断来缩小查找范围(范围减小一半),这样不断地循环下去,直到查找成果(或失败)int binarySearch(int A[], int left, int right, int x){ int mid; while(left < =right)...
2019-10-03 16:35:37 273
原创 Scrapy框架使用2(复习专用) CrawlSpider
CrawlSpider介绍CrawlSpider就是将符合某种规则的网页进行爬取,规则由自己定义接上回,以古诗文网为例https://blog.csdn.net/qq_40595682/article/details/101797355使用scrapy.Request( , )过于单一,碰到链接形式比较复杂时难以使用但如果这些链接有某个共同点的话只要定义好一个规则,满足这个特点的链接就进...
2019-10-02 16:41:14 291 2
原创 选择排序和插入排序
选择排序选择排序就是对于一个序列A[0] ~ A{n-1]中,令 i 从头到尾遍历找出这个序列中最小值,并将该值与排序区间[0, n-1]中最前面的值进行交换,那么最前面的值就是整个序列中最小的值下一步将该区间缩小为[1,n]表明第0个数已经是有序的,以此类推选择排序时间复杂度为O(n²)void selectSort(){ int A[10] = {3,1,4,5,9,2,6,...
2019-10-02 15:13:25 360
原创 对sscanf和sprintf的理解
sprintf#include<cstdio>using namespace std;int main(){ int n = 2048; double db = 3.14; char str[100] = "hello", str2[100]; sprintf(str2,"%d, %lf, %s",n,db,str ); printf(s...
2019-10-02 08:57:30 158
原创 Scrapy框架使用(复习专用)
Scrapy框架使用(复习专用)Pycharm2018中创建Scrapy框架Scrapy项目文件items.pymiddlewares.pypipelines.pysettings.py爬虫文件.py爬取古诗文网运行爬虫效果查看设置执行命令文件爬取古诗内容获取容器获取古诗主体合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定...
2019-10-01 16:18:42 468
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人