一、Python编程环境配置
之前在简书写过一篇安装anacoda的分享:https://www.jianshu.com/p/a512f3c5bca0;
二、Python基本语法
1.字符串(string)
输入:可用英文的单引号或双引号,带换行符的多行字符串也可用三重引号;如v=’Hello World’;
访问值:可用方括号截取字符串,如print(var[0])截取的就是字符串的第一个字符;
修改:已存在的字符串本身不能修改,但是可以通过赋值改变;如a=’1’ b=a.replace(‘1’,’2’) 即把1换成2;
将对象转为字符串:str函数实现,如a=1 s=str(a);
当做序列类型处理:如s=’python’ list(s) 结果[‘p’,’y’,’t’,’h’,’o’,’n’]
2.元组(tuple)
元组是一种一维的、定长的、不可变的Python对象序列;
输入:在括号中添加元素,并用逗号隔开,如t=(1,2,3,4,5);如果元组只包含一个元素要在元素后加逗号,t=(50,);
访问元组:用下标索引来访问元组中的值,print(tup1[1:5]);
修改元组:元素值不能修改,但可以进行组合tup3=tup1+tup2 print(tup3) ;
元组运算符:计算元素个数len((1,2,3)) 结果3;复制(‘Hi!’,)*4 结果(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’);
判断是否存在3 in (1,2,3)等;
元组截取:读取元素中第三个元素L[3];反向读取,读取倒数第二个元素L[-2];从第二个元素开始一直截取到最后L[1:];
内置函数:len(tuple);max(tuple);min(tuple);
3.列表(list)
列表可变长,可对其内容进行修改;
输入:可通过方括号[],或者list函数进行定义;如a=[2,3,4];b=list(tup);修改列表中的内容list[1]=’e’,即把第二个内容换成了’e’;
访问列表:使用下标索引访问,或用方括号截取字符;
更新列表:如list[2]=100,即将列表中第三个元素更新为100;
删除元素:如del list[2],即删除列表中第三个元素;
判断元素是否存在:如2 in a,标识在列表a中是否存在元素2,如果存在则输出True;
列表的截取和元组类似;
4.字典(dict)
字典是一种可变且可存储任意类型对象;
输入:字典中每个键值对用冒号分隔,每个对之间用逗号分隔,整个字典包括在花括号中({}),
D={‘key1’:’value1’,’key2’:’value2’},如dict={‘alice’:’12’,’beth’:’91’,’cecil’:’32’}
键是唯一的,值可变可取任何数据类型;
访问字典:把相应的键放入方括弧中,如print(dict[‘alice’]) 结果为12;如果字典中没有键的访问数据,则会输出错误;
修改字典:更新字典dict[‘alice’]=51 则将12更新为51;
删除字典:del可删元素也可这个字典删除(删除后字典不存在),clear可清空字典(清空后字典还存在),如del dict[‘alice’] #删除键’alice’;dict.clear() #清空字典;del dict #删除字典;
5.条件语句
If语句:
If……elif……else
每个条件后面使用冒号,表示接下来是满足条件后要执行的语句块;
6.循环语句
While循环:只要条件满足就不断循环,条件不满足时退出循环;
For……in循环:把每个元素带入变量中,依次把list或tuple中的每个元素迭代出来;
三、Requests+Xpath
爬虫:又称网页蜘蛛,是一种程序或脚本,能够按照一定的规则自动获取网页信息。
爬虫基本原理:
1.挑选种子URL;
2.将这些URL放入待抓取的URL队列;
3.取出待抓取的URL,下载并存储进已下载网页库中;此外,将这些URL放入待抓取URL队列,进入下一循环;
4.分析已抓取队列中的URL,并且将URL放入待抓取URL队列,从而进入下一循环;
爬虫基本流程:下载网页-解析页面-获取并存储内容;
爬虫的包:
Python中爬虫相关的包很多,比如Urllib、requests、bs4等,requests+xpath是其中比较简单容易上手的一种;
导入库:import+库名;(import requests用来下载网页)
调用库中的某种方法:from+库名+import+方法名;(from lxml import etree用来解析网页)
获取元素的Xpath信息并获得文本:file=s.xpath(‘元素的Xpath信息/text()’)
Xpath信息的获取:
1.定位目标元素:在网页上右键-检查;
2.光标移到对应元素时,按下快捷键“shift+ctrl+c”;
3.然后右键-copy-copyXpath;
四、实例——爬取豆瓣图书top250
1.先爬一个书名试试水;
2.再爬一下主演、片长等信息试试;
3.最后在top250的页面中爬下所有书的名字、评分、和链接;
记得加入一个sleep()的函数,不然爬得太快ID容易被封(之前脑袋短路把循环range(10)改为了range(250),又没有加sleep函数,被豆瓣封了)