- 博客(28)
- 收藏
- 关注
原创 头条爬取
# -*- coding:utf-8 -*-import requestsfrom urllib import parse, requestimport requestsimport osdef get_page(offset): params = { 'offset': offset, 'format': 'json', 'k...
2018-06-15 10:50:21
387
原创 python日志2018.3.2
import requestsfrom fake_useragent import UserAgentagent = UserAgent()num = 1while num<20: url = 'http://www.kfzj.com.cn/browse/category/%s'%num num += 1 headers = { 'User...
2018-06-15 10:49:23
253
1
原创 布隆去重
费劲吧啦的爬到了数据,在满心欢喜之前还有一关要过,那就是去重是滴,一万条数据重复一千次就只有十条有效数据了不要问我这个咋算的,我不会告诉你,总之这个时候就需要另一个英雄登场了布隆!!!!好吧,不是他,是另一个布隆去重https://github.com/liyaopinner/BloomFilter_imooc下载布隆过滤器,将其中的py_bloomfilter.py放到scrapy_redis包...
2018-06-15 10:47:34
428
原创 pyspider+MongoDB简单操作
#!/usr/bin/env python# -*- encoding: utf-8 -*-# Created on 2018-03-30 09:20:41# Project: IvskyDemofrom pyspider.libs.base_handler import *class MysqlWirter(object): def __init__(self): ...
2018-06-15 10:22:06
1582
1
原创 scrapy-redis代码实例
# -*- coding: utf-8 -*-import scrapyfrom ..items import BookListItem,BookDetailItem# 引入scrapy_redis中的爬虫类from scrapy_redis.spiders import RedisSpider# 修改爬虫类继承的父类为RedisSpiderclass YunqiSpider(Redi...
2018-06-15 10:18:15
474
原创 自己设置代理池
# -*- coding:utf-8 -*-import requestsimport pymysqlfrom fake_useragent import UserAgent# Selector 引入from scrapy.selector import Selector'''1.爬虫每次发起请求需要从代理池中提取一个可用代理,如果提取的代理不可用,从代理池中删除2.当代理池中的代...
2018-06-15 10:12:08
720
原创 scrapy框架写入json数据
# -*- coding: utf-8 -*-import scrapyfrom ..items import BookItemclass NovelSpider(scrapy.Spider): name = 'novel' allowed_domains = ['readnovel.com'] start_urls = ['https://www.readnove...
2018-06-15 10:01:41
955
原创 scrapy爬取网站返回json数据处理
# -*- coding: utf-8 -*-import scrapyimport jsonclass NeihanSpider(scrapy.Spider): name = 'neihan' allowed_domains = ['neihanshequ.com'] start_urls = ['http://neihanshequ.com/bar/1/?is_...
2018-06-15 09:57:14
15392
原创 MongoDB基础操作和pyspider
关系型数据库和非关系数据库的区别:简单来说,关系型数据库可以支持多表联查,回滚等菲关系型数据库,一般来说存储在内存中,以键值对方式存在。查东西比较快from pymongo import MongoClient# 向mongodb中插入数据的类class MongoWriter(object): def __init__(self): # 构造对象 s...
2018-06-08 17:53:41
476
原创 线程、进程和协程 概念
把子线程变成主线程中的守护线程,当主线程结束后,子线程也会随之结束,一旦主线程代码执行完毕,程序就结束了如果没有添加守护线程,当主线程执行完毕之后,会等待子线程中的任务执行完成之后,再退出程序def run(num): # 在子线程中执行这个任务 print('任务:{}'.format(num)) if num == 1: time.sleep(10) ...
2018-06-08 16:57:53
132
原创 GitHub相关命令
git init 初始化git仓库git status 查看工作的状态git add filename 将文件的修改或添加 添加到缓存区git commit -m "提交描述" 将缓存区的修改,提交到版本仓库git log 查看当前版本下的所有提交日志git reflog 查看所有的git命令历史记录git reset --hard HEAD^ 回退到上一个版本 (HEAD^^上上版本...HE...
2018-06-07 18:25:55
133
原创 微信公众号连接
首先第一步是验证,需要配置验证路由在urls中url(r'^wechat/',wechat)然后在views视图中走验证的逻辑然后这里有一个csrf_token问题。所以需要导入一个包from django.http import HttpResponsefrom django.views.decorators.csrf import csrf_exemptfrom .messages im...
2018-06-05 17:57:34
328
原创 Nginx负载均衡
Nginx相当于一个服务器,中间件,等等,总之介于客户端和服务器中间的。所以可以做的事很多,比如缓存或者分配。做负载均衡的话分为以下几步:1.在etc/nginx/conf.d下面新建一个nginx.conf文件upstream backend{ #ip_hash; server 127.0.0.1:9701 weight=1; server 127.0.0.1:9702 weight=2;...
2018-06-05 16:29:40
236
原创 scrapy中pipeline的异步存储
import pymysql'同步写入数据速度比较慢,而爬虫速度比较快,可能导致数据最后写入不到数据库中''''1.引入twisted.enterprise.adbapi pymysql.cursors2.在settings中配置数据库连接参数3.创建pipeline,实现from_settings函数,从settings获取数据库连接参数,根据参数创建连接池对象,返回当前pipeli...
2018-06-04 16:30:30
2585
原创 scrapy中的settings设置
1.robots.txt协议ROBOTSTXT_OBEY = False需要激活并修改为FalseDOWNLOAD_DELAY = 0.5download_delay需要激活,并设置时间,降低爬取速度COOKIES_ENABLED = False禁用cookie追踪#SPIDER_MIDDLEWARES = {# 'IvskySpider.middlewares.IvskyspiderSp...
2018-06-04 16:29:57
911
原创 get请求和post请求
1.get请求的请求数据在URL中,post请求的请求数据在请求体中2.数据长度,get请求有长度限制,post请求的长度限制由服务器决定3.数据安全性,两者都不安全,但post相对安全一些4.应用场景不同,get请求一般用于访问页面,post请求一般用于上传数据response = requests.get( "https://www.baidu.com/s", params={...
2018-06-04 16:29:31
192
原创 scrapy 中间件重写,与selenium结合爬取动态页面
from scrapy.http.response.html import HtmlResponsefrom selenium import webdriverfrom selenium.webdriver.chrome.options import Options#自定义中间件class CustomMiddleware(object): def process_request(...
2018-06-04 16:29:16
2030
原创 多线程操作
进程,负责维护一个应用程序的启动及运行,一个应用程序的启动至少要保持一个进程,这个进程负责给任务指定县城,通过负责分配内存空间,是一个管理者。一个进程中至少存在一个线程,被称为主线程,除了主线程,还有一些分线程,线程就是用于同时执行多个任务的。线程是执行任务的最小单位,进程和线程是由操作系统来决定如何分配进程和线程。主线程,在进程中是唯一的,一般比较大量数据处理任务不会交给主线程来执行,一旦主线程...
2018-06-04 16:28:52
211
原创 ubuntu操作
编辑文件vim 文件名insert 简写为i,插入操作esc 退出,然后q,不保存wq保存。一、常用指令1. ls 显示文件或目录2. -l 列出文件详细信息l(list)3. -a 列出当前目录下所有文件及目录,包括隐藏的a(all)4. mkdir 创建目录5. -p 创建目录,若无父目录,则创建p(parent) 6. cd 切换目录7. tou...
2018-06-04 16:27:59
177
原创 pycharm远程操作Ubuntu
打开tools——deployment——configuration创建一个sftp,name随便填填写Ubuntu服务器ip并测试,然后填写账号密码在mapping里填写项目的本地地址和服务器地址,也就是filezille上的地址,点击OK变更环境并创建然后还是在deployment中,选择第一个上传配置文件,然后选择倒数第二个,自动同步文件之后,在这里,选择host地址为0.0.0.0 也就是...
2018-06-02 18:02:04
621
原创 Nginx相关配置
重启Nginxsudo service nginx restart在etc/nginx/conf.d文件夹下创建django_nginx.conf文件,以连接django项目server { listen 8000; 这个是监听窗口 server_name 127.0.0.1; access_log /var/log/nginx/logi...
2018-06-02 17:34:23
105
原创 Ubuntu部署django项目
安装好python环境,安装nginx,安装uwsgi,安装SSH修改django项目中的配置文件settingsDEBUG = FalseALLOWED_HOSTS = ["*"]如果有静态文件static路径也需要配置一下。将项目通过filezilla传到Ubuntu上这个时候如果还需要修改文件的话,需要在filezilla上修改filezilla中编辑——设置——文件编辑,选择打开方式,进行...
2018-06-02 16:05:59
211
原创 Ubuntu下搭建python开发环境
Ubuntu下搭建python开发环境1. 下载安装python运行环境Ps:ubuntu自带python2.7环境,如需下载安装,可使用以下命令首先输入sudo passwd 输入root相关密码,输入su,进入超级管理员Sudo apt-get install pythonSudo apt-get install python-dev(编译外部模块文件使用的)Sudo apt-get inst...
2018-06-01 19:17:15
349
原创 Ubuntu部署Django
参考连接http://www.cnblogs.com/fnng/p/5268633.html1. 安装Ubuntu系统或CentOS系统2. pip freeze >requirements.txt3. pip install -r requirements.txt4. 相关环境搭建5. sudo passwd 输入root相关密码6. 输入su回车 进入超级管理员sudo apt-get...
2018-05-30 09:20:58
525
原创 数据模型之间的关系
models之间的关系简单的分为一对一(OneToOneField),一对多(ForeignKey),多对多(ManyToManyField)三种构建这种关系相对简单,只需要在models中声明即可,主要是在调用和查询的时候有些困难,所以这里主要说说查询相关查询和引用一般是在视图函数views中实现1.全部展示from apps.model import AbsModeldef index(re...
2018-05-26 12:03:16
2677
原创 scrapyd的使用
scrapyd部署爬虫的优势:1、方便监控爬虫的实时运行状态,也可以通过接口调用开发自己的监控爬虫的页面2、方便统一管理,可以同时启动或关闭多个爬虫3、拥有版本控制,如果爬虫出现了不可逆的错误,可以通过接口恢复到之前的任意版本首先第一步也是安装pip install scrapyd安装完成之后启动即可,即在cmd中输入scrapyd这个时候在浏览器输入127.0.0.1:6800 就能查看...
2018-03-22 18:05:41
393
原创 虚拟环境的搭建
1.多安装几个版本的python以备用2.安装virtualenvs 即pip install virtualenvwrapper-win包3.输入workon查看是否可以用 这个时候ENVS文件是默认存储的,想要修改可以修改workon的路径4.在系统环境中添加WORKON_HOME即可5.这个时候就可以创建虚拟环境了,命令是mkvirtualenv +文件名创建指定版本的虚拟环境命令是,mkv...
2018-03-22 17:32:00
347
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人