作者文章归档:daxiahy

03.scrapy安装及目录结构

开始

1. 创建虚拟环境

打开cmd输入如下命令:

mkvirtualenv --python=C:\Python\Python35-32\python.exe article_spider

然后安装scrapy:

pip install -i https://pypi.douban.com/simple scrapy

注:出现 ==Failed building wheel for Twisted==时请去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载对应的whl,然后安装

pip install Twisted-18.9.0

阅读全文 →

04.xpath+css选择器

xpath简介

  1. xpath使用路径表达式在xml和html中进行导航
  2. xpath包含标准函数库
  3. xpath是一个w3c的标准

xpath语法

表达式 说明
article 选取所有article元素的所有子节点
/article 选取根元素article
article/a 选取所有属于article的子元素的a元素
//div 选取所有div子元素(不论出现在文档任何地方)
article//div 选取所有属于article元素的后代的div元素,不管它出现在哎article之下的任何位置
//@class 选取所有名为class的属性
/artic

阅读全文 →

05.编写spider

解析所有文章及提取下一页

# -*- coding: utf-8 -*-
import scrapy
import re
from scrapy.http import Request
from urllib import parse


# 提取字符串中的数字
def get_nums(str):
    match_re = re.match(".*(\d+).*", str)
    if match_re:
        nums = int(match_re.group(1))
    else:
        nums = 0
    return nums

阅读全文 →

06.保存数据

保存到json中

  1. 在pipelines.py中写入
import codecs
import json

# 用来配置保存到json文件
class JsonWhithEncondingPipeline(object):
    def __init__(self):
        self.file = codecs.open('article.json', 'w', encoding="utf-8")

    def process_item(self, item, spider):
        lines = json.du

阅读全文 →

07.模拟登陆

使用selenium登陆并保存cookie

# _*_ coding: utf-8 _*_
__author__ = 'daxiahy'
__date__ = '2019/2/26 21:38'
import time
import pickle
import scrapy
from selenium import webdriver
from scrapy.selector import Selector

def start_requests(self):
    brower = webdriver.Chrome(executable_path="

阅读全文 →

01.正则表达式

语法

  1. ==^== 破折号表示以什么为开头(破折号写在左侧)==$== 美元符号表示以什么为结尾
  2. ==.== 点号表示任意字符
  3. ==*== 星号表示前面的字符可以重复任意多遍(星号写在右侧)

例如:regex_str = "^b.*" 表示以b开头,后面出现任意字符任意多次都能匹配成功

import re

line = 'bobby123'
regex_str = "^b.*"
match_obj = re.match(regex_str, line)
if match_obj:
    print("yes")
  1. ==?==

阅读全文 →

04.model设计

  1. 创建完自己的app后需要到 settings.py 下注册(myapp)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

注:如果要重载user方法需要需要在setting中重载AUTH_USER_MOD

阅读全文 →

05.model的增删改

  1. 数据保存
def add_users():
    user = UserProfile()
    user.nike_name = 'hy'
    user.save()
  1. 数据删除
models.UserInfo.objects.filter(user='yangmv').delete()
  1. 数据读取
models.UserInfo.objects.all()
#只取user列
models.UserInfo.objects.all().values('user')
#取出id和user列,并生成一个列表
models.UserInfo.objects.all().values

阅读全文 →

06. template模板

模板应用实例

HelloWorld/
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- view.py
|   |-- view.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- manage.py
`-- templates
    `-- hello.html

hello.html 文件代码如下:

<h1>{{ hello 

阅读全文 →

07. django admin

django admin 需要手动创建用户

1. 创建用户

打开pychrom 中 tools中的 Run manage.py Task 工具 输入

createsuperuser

然后输入用户名 密码。

2. django语言、时区设置:

若需要使用汉语,django1.7及之前的版本,修改成zh-CN。

1.8及之后的版本,修改成zh-hans。 时区我们需要设置成Asia/Shanghai。

对于USE_TZ,若使用默认的True,django在数据库存储过程中,会使用UTC时间。故改成False,以便使用中国时区

3. 访问 admin网页

http://127.0.0.1:8000

阅读全文 →