一、Python編程環(huán)境配置
之前在簡(jiǎn)書寫過(guò)一篇安裝anacoda的分享:http://www.itdecent.cn/p/a512f3c5bca0;
二、Python基本語(yǔ)法
1.字符串(string)
輸入:可用英文的單引號(hào)或雙引號(hào),帶換行符的多行字符串也可用三重引號(hào);如v=’Hello World’;
訪問(wèn)值:可用方括號(hào)截取字符串,如print(var[0])截取的就是字符串的第一個(gè)字符;
修改:已存在的字符串本身不能修改,但是可以通過(guò)賦值改變;如a=’1’?? b=a.replace(‘1’,’2’)? 即把1換成2;
將對(duì)象轉(zhuǎn)為字符串:str函數(shù)實(shí)現(xiàn),如a=1?? s=str(a);
當(dāng)做序列類型處理:如s=’python’?? list(s)???結(jié)果[‘p’,’y’,’t’,’h’,’o’,’n’]
2.元組(tuple)
元組是一種一維的、定長(zhǎng)的、不可變的Python對(duì)象序列;
輸入:在括號(hào)中添加元素,并用逗號(hào)隔開,如t=(1,2,3,4,5);如果元組只包含一個(gè)元素要在元素后加逗號(hào),t=(50,);
訪問(wèn)元組:用下標(biāo)索引來(lái)訪問(wèn)元組中的值,print(tup1[1:5]);
修改元組:元素值不能修改,但可以進(jìn)行組合tup3=tup1+tup2??? print(tup3) ;
元組運(yùn)算符:計(jì)算元素個(gè)數(shù)len((1,2,3))? 結(jié)果3;復(fù)制(‘Hi!’,)*4??結(jié)果(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’);
判斷是否存在3 in (1,2,3)等;
元組截?。鹤x取元素中第三個(gè)元素L[3];反向讀取,讀取倒數(shù)第二個(gè)元素L[-2];從第二個(gè)元素開始一直截取到最后L[1:];
內(nèi)置函數(shù):len(tuple);max(tuple);min(tuple);
3.列表(list)
列表可變長(zhǎng),可對(duì)其內(nèi)容進(jìn)行修改;
輸入:可通過(guò)方括號(hào)[],或者list函數(shù)進(jìn)行定義;如a=[2,3,4];b=list(tup);修改列表中的內(nèi)容list[1]=’e’,即把第二個(gè)內(nèi)容換成了’e’;
訪問(wèn)列表:使用下標(biāo)索引訪問(wèn),或用方括號(hào)截取字符;
更新列表:如list[2]=100,即將列表中第三個(gè)元素更新為100;
刪除元素:如del list[2],即刪除列表中第三個(gè)元素;
判斷元素是否存在:如2 in a,標(biāo)識(shí)在列表a中是否存在元素2,如果存在則輸出True;
列表的截取和元組類似;
4.字典(dict)
字典是一種可變且可存儲(chǔ)任意類型對(duì)象;
輸入:字典中每個(gè)鍵值對(duì)用冒號(hào)分隔,每個(gè)對(duì)之間用逗號(hào)分隔,整個(gè)字典包括在花括號(hào)中({}),
D={‘key1’:’value1’,’key2’:’value2’},如dict={‘a(chǎn)lice’:’12’,’beth’:’91’,’cecil’:’32’}
鍵是唯一的,值可變可取任何數(shù)據(jù)類型;
訪問(wèn)字典:把相應(yīng)的鍵放入方括弧中,如print(dict[‘a(chǎn)lice’])?? 結(jié)果為12;如果字典中沒(méi)有鍵的訪問(wèn)數(shù)據(jù),則會(huì)輸出錯(cuò)誤;
修改字典:更新字典dict[‘a(chǎn)lice’]=51?? 則將12更新為51;
刪除字典:del可刪元素也可這個(gè)字典刪除(刪除后字典不存在),clear可清空字典(清空后字典還存在),如del dict[‘a(chǎn)lice’]?? #刪除鍵’alice’;dict.clear()? #清空字典;del dict? #刪除字典;
5.條件語(yǔ)句
If語(yǔ)句:
If……elif……else
每個(gè)條件后面使用冒號(hào),表示接下來(lái)是滿足條件后要執(zhí)行的語(yǔ)句塊;
6.循環(huán)語(yǔ)句
While循環(huán):只要條件滿足就不斷循環(huán),條件不滿足時(shí)退出循環(huán);
For……in循環(huán):把每個(gè)元素帶入變量中,依次把list或tuple中的每個(gè)元素迭代出來(lái);
三、Requests+Xpath
爬蟲:又稱網(wǎng)頁(yè)蜘蛛,是一種程序或腳本,能夠按照一定的規(guī)則自動(dòng)獲取網(wǎng)頁(yè)信息。
爬蟲基本原理:
1.挑選種子URL;
2.將這些URL放入待抓取的URL隊(duì)列;
3.取出待抓取的URL,下載并存儲(chǔ)進(jìn)已下載網(wǎng)頁(yè)庫(kù)中;此外,將這些URL放入待抓取URL隊(duì)列,進(jìn)入下一循環(huán);
4.分析已抓取隊(duì)列中的URL,并且將URL放入待抓取URL隊(duì)列,從而進(jìn)入下一循環(huán);
爬蟲基本流程:下載網(wǎng)頁(yè)-解析頁(yè)面-獲取并存儲(chǔ)內(nèi)容;
爬蟲的包:
Python中爬蟲相關(guān)的包很多,比如Urllib、requests、bs4等,requests+xpath是其中比較簡(jiǎn)單容易上手的一種;
導(dǎo)入庫(kù):import+庫(kù)名;(import? requests用來(lái)下載網(wǎng)頁(yè))
調(diào)用庫(kù)中的某種方法:from+庫(kù)名+import+方法名;(from lxml import etree用來(lái)解析網(wǎng)頁(yè))
獲取元素的Xpath信息并獲得文本:file=s.xpath(‘元素的Xpath信息/text()’)
Xpath信息的獲?。?/b>
1.定位目標(biāo)元素:在網(wǎng)頁(yè)上右鍵-檢查;
2.光標(biāo)移到對(duì)應(yīng)元素時(shí),按下快捷鍵“shift+ctrl+c”;
3.然后右鍵-copy-copyXpath;
四、實(shí)例——爬取豆瓣圖書top250
1.先爬一個(gè)書名試試水;

2.再爬一下主演、片長(zhǎng)等信息試試;

3.最后在top250的頁(yè)面中爬下所有書的名字、評(píng)分、和鏈接;
記得加入一個(gè)sleep()的函數(shù),不然爬得太快ID容易被封(之前腦袋短路把循環(huán)range(10)改為了range(250),又沒(méi)有加sleep函數(shù),被豆瓣封了)
