爬虫技术python代码_2017.07.21 Python网络爬虫之Python代码格式
1.Python在格式方面与其他大众语言相差不大,但也有它独特之处尤其是代码缩进;在其他编程语言中,代码缩进大多是为了美观,程序,函数的开始结束都由花括号来控制
而python中却不一样,程序,代码块的开始结束都是由缩进来控制的。
2.Python的缩颈一般都是4个空格,先严格按照这种缩进方法来测试代码:
----|----|def __init__(self):
----|----|----|----|self.timeout=3
----|----|----|----|self.url=''
........................
程序中----|代表4个空格,可以用tab键替代4个空格,在自己的编辑器上将Tab键设置为4个空格就好‘’
3.Python的缩进规则:同一代码块纵向对齐,同级别函数(不存在调用关系)纵向对齐,每次对齐都是4个空格的倍数
4.Python命名规则:
(1)匈牙利命名法:把变量名按照属性+类型+对象描述的顺序组合起来,以使程序员定义变量时对变量的类型和其他属性有直观的了解
(2)驼峰命名法:当变量名或函数名是由一个或多个单词连在一起,而构成的唯一识别字时,第一个单词以小写字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName,myLastName
变量的命名一般用小驼峰法,第一个单词全部小写,后面的单词首字母大写
类名的命名一般用大驼峰法,第一个单词的首字母也大写
(3)推荐的命名规则:
1.模块名和包名采用小写字母并且以下划线分隔单词的形式;
如:regex_syntax,py_compile,_winreg
2.类名或异常名采用每个单词首字母大写的方式;
如:BaseServer,ForkingMixIn,KeyboardInterrupt
3.全局或者类常量,全部使用大写字母,并且以下划线分隔单词;
如:MAX_LOAD
4.其余变量命名包括方法名,函数名,普通变量名则是采用全部小写字母,并且以下划线分隔单词的形式命名。
如:my_thread
5.以上的内容如果是内部的,则使用下划线开头命名。
如:__init__,__new__
所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.
用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含).
用双下划线(__)开头的实例变量或方法表示类内私有.
将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.
对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.
5.python代码注释:
(1)Python特殊注释:所有的python都有这两句话
#! /usr/bin/python env 这一行的目的是指明Python编译器的位置
#-*- coding:utf-8 -*- 这一行指明该程序使用的字符编码
(2)Python单行注释:单行注释很简单,不管在代码的任何位置,只要#之后的都是注释,但仅限于本行之内,不得换行
(3)Python多行注释:Python中多行注释采用三个单引号'''或者三个双引号"""
如果多行注释紧跟着定义类或者定义函数之后则自动变成了该类或者函数的doc string,就是模块,类,函数的功能注释
显示doc string的方法:
6.Python的调试:python自带的调试工具
(1)先编写一个程序测试:testWinDebugFactorial.py
# !usr/bin/env python
# -*- coding:GBK -*-
def fac(n):
if n==1 or n==0:
return 1
else:
return n*fac(n-1)
def main():
print("这是一个求阶乘的程序\n")
n=raw_input("请输入一个正整数")
try:
n=int(n)
except ValueError:
print("输入错误,要求输入一个正整数,退出重来吧。")
print("%d != %d" %(n,fac(n)))
if __name__=='__main__':
main()
(2)开始调试testWinDebugFactorial.py:
(3)添加断点,所谓断点就是调试程序时需要停顿的位置。一般为函数的入口,参数变化的行添加:
这里只在fac函数入口处添加一个断点,单击fac函数入口行:
(4)开始运行调试程序:
(5)单击Debug Control窗口中的Go按钮,开始运行程序,然后单击Debug Control窗口的Step按钮,逐步运行程序
如果需要跳出循环或者函数,则单击Debug Control窗口的Out按钮
Debug Control窗口中的stack检查框显示的是程序当前运行位置
Locals检查框显示的是当前变量的值:
爬虫技术python代码_2017.07.21 Python网络爬虫之Python代码格式相关推荐
- [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- c#使用正则表达式获取TR中的多个TD_[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例...
首先祝大家中秋节和国庆节快乐,欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都 ...
- python数据抓取技术与实战训练_师傅带徒弟学Python:项目实战1:网络爬虫与抓取股票数据...
本视频基于**Python 3.X版本 本视频课程是第四篇第一个实战项目,内容包括网络爬虫技术.使用urllib爬取数据.使用Selenium爬取数据.使用正则表达式.使用BeautifulSoup库 ...
- python网页数据存入数据库_python网络爬虫抓取动态网页并将数据存入数据库MySQL...
简述 以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ .此网页中的最新.精华下面的内容是由JavaScript动态生成的.审查网页元素与网 ...
- 以下用于数据存储领域的python第三方库是-南开《网络爬虫与信息提取》19秋期末考核题目【标准答案】...
<网络爬虫与信息提取>19秋期末考核-0001 试卷总分:100 得分:70 一.单选题 (共 20 道试题,共 40 分) 1.如果很多爬虫同时对一个网站全速爬取,那么其实就是对网站进行 ...
- python学习笔记分享(四十)网络爬虫(7)反爬虫问题,解决中文乱码,登陆和验证码处理
网络爬虫深度知识 一.反爬虫问题 (一)反爬虫原因 1.网络爬虫浪费了网站的流量 2.数据是私有资源 3.爬虫协议与原则 (二)反爬虫方式 (三)反反爬虫 1.原理 2.三种方法 二.解决中文乱码 ( ...
- 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
- Python入门教程:什么是网络爬虫
什么是网络爬虫呢?网络爬虫又叫网络蜘蛛(Web Spider),这是一个很形象的名字,把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.严格上讲网络爬虫是一种按照一定的规则,自动地抓 ...
最新文章
- React router 的 Route 中 component 和 render 属性理解
- 实战:基于 CNN 的验证码破解项目(附代码)
- go--基本数据类型
- 固定资产多提折旧问题
- Hive Shell 常用命令
- 快速应用计算机制作pop,POP教案创新.doc
- 电子科学与技术相关索引汇总
- 帆软报表如何传递主表原有参数给子表呢_报表工具--钻取功能--超链接下钻
- [转载] C++转JAVA的转换方法及约定
- BeautifulSoup实现博文简介与过滤恶意标签(xxs攻击)
- Machine Learning Basics(要点)
- kubernetes node节点join master 节点成功后, master节点无法发现node节点
- 用思科模拟器对交换机进行超级终端配置和Telnet远程登录配置
- 手机游戏开发工程师培训教程
- 360与腾讯弹窗大战 数亿网民被迫围观
- 校验18位身份证号码的正确性
- 有些东西,你学不来的
- 静态变量和静态方法编程训练—信用卡消费记录
- java i18n utf_Java国际化(i18n)字符串与Unicode转换
- 记一次过掉rar未注册版,总是弹出一个烦人的网页对话框的实践