<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[喜欢海]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_25046261</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_25046261]]></copyright><item><title><![CDATA[selenium 清除输入框（input）中的内容]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/102480728</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/102480728</guid><author>qq_25046261</author><pubDate>Thu, 10 Oct 2019 13:53:49 +0800</pubDate><description><![CDATA[// 首先定位到input，然后使用clear()
self.driver.find_element_by_xpath('xxxx').clear()

// 往输入框写入内容类似
self.driver.find_element_by_xpath('xxx').send_keys('xxxxx')


]]></description><category></category></item><item><title><![CDATA[Pycharm新建文件时，添加基础信息]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/86622357</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/86622357</guid><author>qq_25046261</author><pubDate>Thu, 24 Jan 2019 10:44:42 +0800</pubDate><description><![CDATA[



]]></description><category></category></item><item><title><![CDATA[selenium + python小demo]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/81744920</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/81744920</guid><author>qq_25046261</author><pubDate>Thu, 16 Aug 2018 16:53:18 +0800</pubDate><description><![CDATA[一、安装环境

# Python安装不在赘述
# Selenium安装： pip install selenium
# 还需要一个浏览器驱动(下载完后解压加入系统环境变量)：
# Firefox: (https://github.com/mozilla/geckodriver/releases)
# Chrome:  (https://sites.google.com/a/chromium.org...]]></description><category></category></item><item><title><![CDATA[Pycharm修改文件默认打开方式]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/81666118</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/81666118</guid><author>qq_25046261</author><pubDate>Tue, 14 Aug 2018 14:15:29 +0800</pubDate><description><![CDATA[新下载了一个Pycharm，建了个小demo，期间产生了一个sqlite3文件，由于是第一次打开，就弹出选择打开方式的对话框，手一块直接点了个Text，然后就乱码了： 
 
那我们不小心操作后，怎么重新修改文件的默认打开方式呢？ 
 
1、File —&amp;amp;gt; Settings —&amp;amp;gt; Editor —&amp;amp;gt; File Types 
 
 
找到Text下的“*.sqlite3”，把它删掉就...]]></description><category></category></item><item><title><![CDATA[安装UI Recorder的时候出现下面错误npm ERR! Unexpected end of JSON input while parsing near '...7","node-uuid":"~]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/81001077</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/81001077</guid><author>qq_25046261</author><pubDate>Wed, 11 Jul 2018 15:12:04 +0800</pubDate><description><![CDATA[安装UI Recorder的时候出现下面错误：

npm ERR! Unexpected end of JSON input while parsing near '...7&quot;,&quot;node-uuid&quot;:&quot;~1.
4.'

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\wb-dzd428534\A...]]></description><category></category></item><item><title><![CDATA[scrapy中使用CrawlSpider，匹配不到urls]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79760531</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79760531</guid><author>qq_25046261</author><pubDate>Fri, 30 Mar 2018 17:13:09 +0800</pubDate><description><![CDATA[scrapy中使用CrawlSpider，匹配不到urls，并且报如下错误：

[scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to 'www.xinpianchang.com': &amp;lt;GET h

原因是allowed_domains设置的有问题，注释掉以后就可以了（或者修改为正确的域名）...]]></description><category></category></item><item><title><![CDATA[scrapy分布式爬虫]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79748576</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79748576</guid><author>qq_25046261</author><pubDate>Thu, 29 Mar 2018 20:31:45 +0800</pubDate><description><![CDATA[scrapy_redis


  scrapy是一个通用的爬虫框架，但是不支持分布式，scrapy_redis是为了更方便的实现scrapy分布式爬取，而提供了一些以redis为基础的组件（仅有组件）。




scrapy_redis工作原理：


调度器将不再负责Url的调度，而是将url上传给scrapy_redis组件，由组件负责组织、去重
redis组件会通过指纹（key)来进行去重操作...]]></description><category></category></item><item><title><![CDATA[scrapy爬取数据之后，如何存入mysql]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79746561</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79746561</guid><author>qq_25046261</author><pubDate>Thu, 29 Mar 2018 17:48:06 +0800</pubDate><description><![CDATA[pipelines.py文件中新建MySQLPipeline类：

# 导入库
from scrapy.utils.project import get_project_settings
import pymysql

# 写入数据库
class MySQLPipeline(object):
    def connect_db(self):
        # 从settings.py文件中导入...]]></description><category></category></item><item><title><![CDATA[scrapy爬取豆瓣电影]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79720568</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79720568</guid><author>qq_25046261</author><pubDate>Tue, 27 Mar 2018 22:30:13 +0800</pubDate><description><![CDATA[
  刚看了scrapy框架，就想写个小项目练练手，刚好最近的一个django项目缺少电影推荐的信息，自然就想到了去爬取豆瓣电影的数据，爬取的url是https://movie.douban.com/top250


新建项目命令： 
scrapy startproject doubanMovie

进入项目目录下，新建一个爬虫文件： 
scrapy genspider movie movie.d...]]></description><category></category></item><item><title><![CDATA[VisualStudio2017专业版和企业版激活密钥]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79697308</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79697308</guid><author>qq_25046261</author><pubDate>Mon, 26 Mar 2018 14:03:22 +0800</pubDate><description><![CDATA[VS2017专业版和企业版激活密钥

Enterprise:

NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

Professional:

KBJFW-NXHK6-W4WJM-CRMQB-G3CDH]]></description><category></category></item><item><title><![CDATA[常见浏览器User-Agent]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79613799</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79613799</guid><author>qq_25046261</author><pubDate>Mon, 19 Mar 2018 16:43:57 +0800</pubDate><description><![CDATA[下面是工作中需要用到的常见浏览器User-Agent字符串的收集整理。

Opera 
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 
Opera/8.0 (Windows NT 5.1; U;...]]></description><category></category></item><item><title><![CDATA[python爬虫学习1]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79613739</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79613739</guid><author>qq_25046261</author><pubDate>Mon, 19 Mar 2018 16:40:48 +0800</pubDate><description><![CDATA[爬虫



爬虫概览



什么是爬虫

生活角度：spider-projection(爬虫程序)

互联网爬虫：一个程序，根据url爬取网页，获取有用信息

核心：爬取网页 + 解析数据

难点：爬虫与反爬虫之间的博弈



爬虫语言

php：多进程和多线程支持不好

java：python爬虫的主要竞争对手，但是代码量大，重构成本高，而爬虫需要经常修改，所以不适合

c/c++：学习成本比较...]]></description><category></category></item><item><title><![CDATA[django中使用自定义过滤器和自定义标签]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79577933</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79577933</guid><author>qq_25046261</author><pubDate>Fri, 16 Mar 2018 10:21:32 +0800</pubDate><description><![CDATA[自定义过滤器

首先在app底下新建一个templatetags目录，里面添加两个文件，目录结构如下： 


然后在settings.py中把templatetags目录作为app注册



INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttyp...]]></description><category></category></item><item><title><![CDATA[如何在django的admin后台管理中显示多对多字段的值]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79575607</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79575607</guid><author>qq_25046261</author><pubDate>Thu, 15 Mar 2018 23:13:38 +0800</pubDate><description><![CDATA[# admin.py，其中Author表中的authors字段和Book表是多对多关系

from django.contrib import admin
from .models import Author, Book, Publisher

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    # 显示多对多字段
    # ...]]></description><category></category></item><item><title><![CDATA[python:使用装饰器实现单例模式]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79558909</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79558909</guid><author>qq_25046261</author><pubDate>Wed, 14 Mar 2018 19:07:29 +0800</pubDate><description><![CDATA[单例模式：一个类，在整个项目运行周期内只有一个实例。

# 使用装饰器实现单例模式
def singleton(cls, *args, **kwargs):
    instance = {}
    def _instance():
        if cls not in instance:
            instance[cls] = cls(*args, *kwargs)
  ...]]></description><category></category></item><item><title><![CDATA[python装饰器]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79558058</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79558058</guid><author>qq_25046261</author><pubDate>Wed, 14 Mar 2018 17:46:39 +0800</pubDate><description><![CDATA[python装饰器就是用于扩展原函数功能的一种函数，这个函数特殊的地方就是它的返回值也是一个函数，使用Python装饰器的一个好处就是：在不需要修改原函数代码的情况下，给函数增加新的功能。 
先来看个例子：



def say():
    print('Nice day')

say()
# 这个函数的输出为：
Nice day

现在，我想在输出Nice day的前面再打印一行*******...]]></description><category></category></item><item><title><![CDATA[Python：互换字典的键值对]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79544959</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79544959</guid><author>qq_25046261</author><pubDate>Tue, 13 Mar 2018 19:12:13 +0800</pubDate><description><![CDATA[1.zip



dic = {'a':1, 'b':2, 'c':3}
dic_new = dict(zip(dic.values(), dic.keys()))
print(dic_new)
# {1: 'a', 2: 'b', 3: 'c'}

2.循环

dic = {'a':1, 'b':2, 'c':3}
dic_new = {}
for key, val in dic.items()...]]></description><category></category></item><item><title><![CDATA[如何用命令行将本地项目上传到git]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79531513</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79531513</guid><author>qq_25046261</author><pubDate>Mon, 12 Mar 2018 19:28:50 +0800</pubDate><description><![CDATA[
（先进入项目文件夹）通过命令把这个目录变成git可以管理的仓库


git init

2.把文件添加到暂存区里面，不要忘记后面的小数点“.”，意为添加文件夹下所有文件

git add .

3.把文件提交到仓库，引号内为提交说明



git commit -m &quot;Dandan's first commit&quot;

4.关联到远程库



git remote add origin 你的远程库地...]]></description><category></category></item><item><title><![CDATA[centos下用uwsgi + nginx + mysql部署django项目]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79486366</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79486366</guid><author>qq_25046261</author><pubDate>Mon, 12 Mar 2018 09:27:04 +0800</pubDate><description><![CDATA[
  centos上安装python、nginx以及uwsgi各种相关依赖就不再赘述，详情可见CentOS6.8编译安装Python3.6 + pip + Nginx以及阿里云新手Flask + nginx + uwsgi + ubuntu的完整项目部署教程




测试uwsgi



vim test.py

# test.py
def application(env, start_respo...]]></description><category></category></item><item><title><![CDATA[Django下上传图片后，如何使用图片（路径问题）]]></title><link>https://blog.youkuaiyun.com/qq_25046261/article/details/79472176</link><guid>https://blog.youkuaiyun.com/qq_25046261/article/details/79472176</guid><author>qq_25046261</author><pubDate>Wed, 07 Mar 2018 15:41:01 +0800</pubDate><description><![CDATA[在Django下，上传图片就是按照常规流程，这里不再赘述，简要说一下如何将上传后的图片在页面中显示出来。 
其实也很简单，就是在settings中设置完MEDIA的相关属性，然后在urlpatterns中设置相关路由，具体代码如下：



# settings.py
MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'stati...]]></description><category></category></item></channel></rss>