《Python爬蟲零基礎(chǔ)入門》課程筆記

一、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ù),被豆瓣封了)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序...
    績(jī)重KF閱讀 2,025評(píng)論 0 1
  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進(jìn)階課程,做筆記總結(jié)一下重點(diǎn)。 基本變量及其類型 變量 在Python中,...
    victorsungo閱讀 1,962評(píng)論 0 5
  • 〇、前言 本文共108張圖,流量黨請(qǐng)慎重! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍。 ...
    Raxxie閱讀 19,598評(píng)論 17 410
  • 一直固執(zhí)的以為愛(ài)不會(huì)那么輕易就過(guò)期,可是各種現(xiàn)實(shí)的問(wèn)題一次次驚醒我們,然而在感情的世界里,我們卻在抱有幻想,不停掙...
    西啊西唄閱讀 1,198評(píng)論 0 3

友情鏈接更多精彩內(nèi)容