学习目的: 掌握爬虫相关的基本概念 正式步骤 Step1:什么是爬虫 请求网站并提取数据的自动化程序 Step2:爬虫的基本流程 Step3:Request和Response 1.request 2.response Step4:能抓怎样的数据 Step5:怎么样来解析 Step6:怎样保存数据 学习总结: 结构化的爬虫还需要学很多,还有Python的基础技能要进一步学习,多应用才能巩固…
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将数据或信息存入数据库中: 3.数据展示,即在Web端进行显示,并有自己的分析说明. 这次我先介绍第一个功能中所需要实现的基本操作: 爬虫的基本操作:      表示必须步骤           表示可选步骤 导入爬虫所需要的库(如:urllib.urllib2.BeautifulSoup.Scrap…
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 #encoding:utf-8 import urllib2 url = "http://www.cnblogs.com/" data = urllib2.urlopen(url).read() print data 我使用urllib2这个库,有关这个库的详细解释请看Python 标准库…
java学习第六章    本周对与java中的接口,lambda表达式与内部类进行了学习,以下是我在学习中的一些体会:    1.接口: <1>.接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的. <2>.(1)接口不能构造接口对象,但可以声明接口变量以指向一个实现了该接口的类对象.   Comparable x = new Comparable(…);       /…
进击的Python[第十六章]:Web前端基础之jQuery 一.什么是 jQuery ? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多"的JavaScript库. jQuery库包含以下功能: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScript 特效和动画 HTML DOM 遍历和修改 AJAX Utilities 提示: 除此之外,Jquery还提供了大量的插件. 这里有一个jquery操作速…
转载地址:http://ask.android-studio.org/?/article/11 6.1. Projects and tasks 项目和任务Everything in Gradle sits on top of two basic concepts: projects and tasks.<翻译> Gradle中的所有东西都是围绕两个基本概念:项目和任务. Every Gradle build is made up of one or more projects. What a…
第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:28+8:28 内容:String 心得: String代表不可变的字符序列 关于String的不可变 之前第3章关于final的整理中有专门提到 这里补充一点小知识   如果是直接2个字符串+ 用string没问题  比如String s= "haha" +"hello"…
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != <> <= >= 赋值运算符 = += -= *= /= %= &= |= ^= <<= >>= 成员访问运算符 . 索引运算符 [] 数据类型转换运算符 () 条件运算符…
第十六章. 正则表达式 1)    匹配多个表达式 记号  re1|re2 说明  匹配正则表达式re1或re2 举例  foo|bar  匹配  foo, bar 记号  {N} 说明  匹配前面出现的正则表达式N 举例  [0-9]{3}  匹配 2)    匹配单个/多个/范围内字符 记号  . 说明  匹配任何字符(换行符除外) 举例  b.b  匹配  b和b中间有一个任意字符bab, bcb, bbb 举例  .. (匹配任何两个字符)  匹配  xx, ab 记号  […] 说明 …
学习目的: 解决AJAX请求的爬虫,网页解析库的学习,MongoDB的简单应用 正式步骤 Step1:流程分析 抓取单页内容:利用requests请求目标站点,得到单个页面的html代码,返回结果: 抓取页面详情内容:解析返回结果,得到详情页的链接,并进一步抓取详情页的信息: 下载图片并保存数据库:将图片下载到本地,把页面信息及图片url保存至MongoDB: 开启循环及多线程:对多页面内容遍历,开启多线程并提高抓取效率. Step2:实例分析 1. 打开今日头条搜索页,搜索“中超”,查看页面的…
学习目的: 爬虫有请求库(request.selenium).解析库.存储库(MongoDB.Redis).工具库,此节学习安装常用库的安装 正式步骤 Step1:urllib和re库 这两个库在安装Python中,会默认安装,下面代码示例调用: >>> import urllib >>> import urllib.request >>> urllib.request.urlopen("http://www.baidu.com")…
学习目的: 学习非关系型数据库环境安装,为后续的分布式爬虫做基建 正式步骤 Step1:安装Redis 打开http://www.runoob.com/,搜索redis安装 打开搜索的内容,得到redis下载网址: https://github.com/MSOpenTech/redis/releases 点击Redis-x64-3.2.100.msi链接下载,选择自定义路径安装 安装过程中,记得勾选添加防火墙例外,或者你关闭防火墙,不然图形化安装无法连接上数据库 Step2:安装redis可视化…
学习目的: urllib提供了url解析函数,所以需要学习正式步骤 Step1:什么是urllib urllib库是Python自带模块,是Python内置的HTTP请求库 包含4个模块: >>> import urllib >>> # urllib.request 请求模块 >>> # urllib.error 异常处理模块 >>> # urllib.parse url解析模块 >>> # urllib.robot…
学习目的: 掌握MySQL数据库的安装 正式步骤 Step1:安装数据库 百度MySQL,下载软件 端口设置 设置密码,我的密码123456 下一步 下一步 查看MySQL服务器是否启动 PS:未申明的步骤为默认,选择自定义安装是因为不想默认安装在C盘系统盘,时间久了以后,系统越来越慢,主要原因还是因为我C盘太小了 Step2:安装MySQL可视化客户端 百度下载MySQL-Front 指定路径后安装 连接MYSQL数据库 学习总结: MySQL的卸载需要删除干净本地所有的目录,以及隐藏目录C:…
在正式爬取之前,先做一个试验,看一下爬取的数据对象的类型是如何转换为列表的: 写一个html文档: x.html<html><head><title>This is a python demo page</title></head> <body> <p class="title"> <a>The demo python introduces several python courses.&l…
什么是Http和Https http协议:全称是HyperText Transfer Protocol,中文意思是超文本传输协议,是一种发布和接收Html页面的方法.默认的端口号是80 https协议:是http协议的加密版本,在HTTP下加入了SSL层.服务器端口号是443 在浏览器中发送一个Http请求的过程 当用户在浏览器的地址栏输入一个url并点下确定键时,浏览器会向web服务器发送HTTP请求,HTTP请求主要有GET和POST两种方法 发送过request请求后,服务器会返回一个re…
需求驱动学习的动力. 因为我们单位上不了外网所以读新闻是那么的痛苦,试着自己抓取网页保存下来,然后离线阅读.今天抓取的是cnbeta科技新闻,抓取地址是http://m.cnbeta.com/wap/index.htm?page=1,咱们需要抓取的是前5页就行了.代码如下: #!/usr/bin/python # -*- coding: utf-8 -*- import urllib2,re,time,json import sys from bs4 import BeautifulSoup r…
自己从事的是汽车行业,所以首先要做的第一个程序是抓取搜狐汽车的销量数据库(http://db.auto.sohu.com/cxdata/): 数据库提供了07年至今的汽车月销量,每个车型对应一个xml数据,比如速腾的销量:http://db.auto.sohu.com/xml/sales/model/model1004sales.xml 现在需要做的是遍历所有车型,以这个格式保存 ‘车型----日期----销量’. #!/usr/bin/python # -*- coding: utf-8 -*…
#!/usr/bin/env python # -*- coding:utf-8 -*- 煎蛋网抓妹子图 import urllib.request import os import random def url_open(url): #定义打开网络连接函数 req = urllib.request.Request(url)#创建Request对象 #给Request对象添加伪装头文件 req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.…
# 异常处理都在urllib.error中进行处理 import urllib.requestimport urllib.error # 第一种异常:该网址不存在url = "http://www.maodan.com/"try: response =urllib.request.urlopen(url)# Exception是所有异常类的基类except Exception as e: print(e)print("毛蛋访问完毕") # 输出结果:# <ur…
参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter6-实战指南 希望大家直接到上面的网址去查看代码,下面是本人的笔记 将上面地址的代码下载到本地后进行操作 1.安装依赖 (deeplearning) userdeMacBook-Pro:dogcat- user$ pip install -r requirements.txt ... Successfully built fire ipdb torchnet Install…
前几天一直在练手廖雪峰老师的python课程,接下来继续学习,由于面向对象编程这一课相对理论便不在此练手,直接上手面向对象高级编程. 一.使用 __slots__ 一般情况下一个class是可以绑定一个属性和方法的,例如: #给实例绑定属性 和 方法 #绑定属性 class Student(object): pass s = Student() s.name = 'nihao' print(s.name) 绑定方法: #绑定方法 def setAge(self, a): self.age = a…
条件处理 本章要点 1.简介 2.布尔和比较指令 3.条件跳转 4.条件循环指令 5.条件结构 6.应用:有限状态机 7.决策伪指令 6.1  简介 本章,读者将看到高级条件分支如何翻译成底层的实现代码. 处理硬件设备的程序必须能够操控数字中的单个数据位,应该能够测试清楚和设置数据位.数据加密和压缩也依赖于位操作. 本章试图解答如下基本问题: 1.如何使用1章中介绍的布尔运算符(AND,OR和NOT)? 2.在汇编语言中如何写一条IF语句? 3.编译器是如何将嵌套的IF语句翻译成机器语言的? 4…
编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式, 对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式. 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式. 两种最重要的编程范式分别是面向过程编程和面向对象编程 面向过程编程…
随机数.设计一个“石头.剪子.布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则.你和你的对手,在同一时间做出特定的手势,必须是下面一种:石头.剪子.布.胜利者从下面的规则产生,这个规则本身是个悖论.(a)布包石头.(b)石头砸剪子.(c)剪子剪破布.在你的计算机版本中,用户输入他/她的选项,计算机找一个随机选项,然后由你的程序来决定一个胜利者或者平手.注意,最好的算法是尽量少使用if语句.[答案]代码如下: #!/usr/bin/env python # -*- codi…
6-13.字符串.string模块包含三个函数,atoi(),atol()和atof(),他们分别负责把字符串转换成整型.长整型和浮点型数字.从Python 1.5起,Python的内建函数int().long().float()也可以做同样的事了,本文来,complex()函数可以把字符串转换成复数(然而1.5之前,这些转换函数只能工作于数字之上)自博客园.string模块中并没有实现一个atoc()函数,那么你来实现一个atoc(),接受单个字符串做参数输入,一个表示复数的字符串,例如'-1…
6-10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转,比如,输入“Mr.Ed”,应该返回“mR.eD”作为输出.[答案]代码如下: #!/usr/bin/env python from lib2to3.fixer_util import String #string lower into upper,upper into lower input = raw_input('Please input a string: ') output = '' for i in…
6-9.转换.为练习5-13写一个姊妹函数,接受分钟数,返回小时数和分钟数.总时间不变,并且要求小时尽可能大.[答案]代码如下: #!/usr/bin/env python # translate minutes into xxHxxM. minutes = int(raw_input('Please input minutes number: ')) h = int(minutes/60) m = minutes%60 print '%d minutes equals %d Hour %d M…
6-8.列表.给出一个整型值,返回代表该值得英文,比如输入89会返回“eight-nine”.附加题:能够返回符合英文语法规律的新式,比如输入89会返回“eighty-nine”.本练习中的值假定在0~1000.[答案]代码如下: number = int(raw_input('Please input a number between 1 to 1000: ... ')) units = ['zero', 'one', 'two', 'three', 'four', 'five', 'six'…
1.序列类型操作符 序列操作符 作用 seq[ind] 获得下标为ind 的元素 seq[ind1:ind2] 获得下标从ind1 到ind2 间的元素集合 seq * expr 序列重复expr 次 seq1 + seq2 连接序列seq1 和seq2 obj in seq 判断obj 元素是否包含在seq 中 obj not in seq 判断obj 元素是否不包含在seq 中 2.序列类型可用的内建函数 函数名 功能 enumerate(iter) 接受一个可迭代对象作为参数,返回一个en…