Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
解决腾讯滑块验证码
最近在研究反反爬,拿腾讯滑块验证下手 以下是官方给的 Demo: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Web 前端接入示例</title> <!-- 验证码程序依赖(必须)。请勿修改以下程序依赖,如使用本地缓存,或通过其 ...
Scrapy 提取数据
此节将会独立于刚新建的项目,学习 Scrapy shell,掌握获取数据的基本方法 何为数据在开发过程中,我们需要获取站点的信息,这些信息包括站点 url、响应状态码、header、body…… 在 Scrapy 中,Response 相当于一个数据字典,包含着站点的大部分信息,在请求后将 Response 作为参数传给了 parse 回调函数。 获取数据CSS 选择器quotes-1.html 和 quotes-2.html 文件只是将站点页面保存了下来,实际开发并不会这样做,而是会在此基础上提取我们想要的数据。学习 Scrapy 最有效的方法其实是使用其提供的 Scrapy shell。通过使用 shell,我们可以更好地理解 Scrapy 爬取数据的原理和机制,并且快速掌握提取数据的方法。还是使用 https://quotes.toscrape.com 做演示。 1scrapy shell 'https://quotes.toscrape.com/page/1/' 123456789101112131415161718192021222324252627 ...
第一个爬虫
在上一节中,我们了解了 Scrapy 是一个爬虫框架,并书写了一个 demo 大致认识了爬取执行过程。但是,在实际开发过程中,不可能是在此 demo 基础上在写逻辑代码的,Scrapy 的强大之处,它为我们开发人员提供一个应用框架,让开发者专心于处理数据。 创建项目Scrapy 创建项目和 Django 和创建项目命令是一致的。在一个心仪的目录下执行命令创建项目。 1scrapy startproject jd 这样,就会创建一个名为 jd 的目录,并自动生成一些文件: 12345678910111213141516jd/ scrapy.cfg # 配置文件。注意:此文件中不要出现中文字符。 jd/ # 工程目录 __init__.py items.py # 目标文件,定义结构化数据字段,用来保存爬取到的数据。 middlewares.py # 中间件。 pipelines.py # 管道文件 setting ...
初识 Scrapy
简述 Scrapy (/ˈskreɪpaɪ/) Scrapy 是一个被广泛应用于爬取网站和提取结构化数据的应用框架,例如数据挖掘、信息处理等等。其设计之处就是为了网站爬虫,发展到现在已经可以使用 APIs 来提取数据,是一个通用的网站爬取工具。 安装当然,前提是已经安装 Python,通过 pip 安装 Scrapy: 1pip install Scrapy 实例 通过一个小 Demo 认识 Scrapy,实践出真知 演示这里使用的是官方文档提供的例子,使用的网站链接依旧有效,是一个很适合爬取做数据分析的演示站点。 直接上代码: 12345678910111213141516171819import scrapyclass QuotesSpider(scrapy.Spider): name = 'quotes' start_urls = [ 'https://quotes.toscrape.com/tag/humor/', ] def parse(self, response): for quote in response.cs ...
Git 基本操作流程
控制逻辑流程 本地操作初始化项目1git init [<projectName>] 若项目已存在,直接进入项目目录执行命令 git init,当然,前提是已安装 Git。若项目不存在,则运行 git init <projectName>,此命令会在当前目录下新建一个项目 projectName 并项目根目录中新建名为.git 的目录,Windows 用户可能需要通过相关设置才可以查看到此目录。需要注意的是,.git 并不是版本控制的工作区,而是 git 的版本仓库,这一目录下存放了很多东西,例如其中最重要的就是称为 stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。 修改项目在 Git 中一个非常重要的概念就是修改,与传统版本控制系统控制元文件不同,Git 引入以修改为控制元的控制结构。就如上图中 git status 返回的内容 “create/copy files…”,这就是一种修改,在 Git 中增加或删除都算作修改。现在作出修改: 12vim READ ...
Git 基本命令
总述 Git 是一个快速的、可扩展的、分布的版本控制系统,它具有丰富的命令控制指令,并提供高级的操作。 123456git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] [--super-prefix=<path>] [--config-env=<name>=<envvar>] <command> [<args>] 参数说明 -v alias: [–versi ...