爬蟲相關(guān)的一些命令

requests
requests是python實(shí)現(xiàn)的最簡單易用的HTTP庫松邪,建議爬蟲使用requests

import requests
url = "https://api.github.com/events"

獲取某個(gè)網(wǎng)頁

import requests
r = requests.get("https://api.github.com/events")
print(r)                # <Response [200]>
print(type(r))          # <class 'requests.models.Response'>  
print(r.status_code)    # 200
各種請求
# 發(fā)送一個(gè) HTTP POST 請求:
r = requests.post("http://httpbin.org/post",data = {'key':'value'})
r = requests.delete('http://httpbin.org/delete')    # 發(fā)送一個(gè) HTTP delete 請求:
r = requests.head('http://httpbin.org/get')         # 發(fā)送一個(gè) HTTP head 請求:
r = requests.options('http://httpbin.org/get')      # 發(fā)送一個(gè) HTTP options 請求:

get 傳遞URL參數(shù)

?+鍵值對

response1 = requests.get("http://httpbin.org/get?key1=value1")
print(response1.url)
#http://httpbin.org/get?key1=value1
requests提供了params關(guān)鍵字參數(shù)來傳遞參數(shù)
parameter = {
            "key1":"value1",
            "key2":"value2"
            }
response2 = requests.get("http://httpbin.org/get",params = parameter)
print(response2.url)
# http://httpbin.org/get?key1=value1&key2=value2

還可以將一個(gè)列表作為值傳入

parameter = {
            "key1":"value1",
            "key2":["value21","value22"]
}
response3 = requests.get("http://httpbin.org/get",params = parameter)
print(response3.url)
# http://httpbin.org/get?key1=value1&key2=value21&key2=value22

注意字典里值為 None 的鍵都不會被添加到 URL 的查詢字符串里。

parameter = {
            "key1":"value",
            "key2":None
}
response4 = requests.get("http://httpbin.org/get",params = parameter)
print(response4.url)    #http://httpbin.org/get?key1=value

Selenium
Selenium 是一套跨平臺的瀏覽器自動化測試框架(工具),支持在多種系統(tǒng)環(huán)境瓜晤、多種瀏覽器環(huán)境下使用燃领,還可以使用多種編程語言來編寫測試棕孙。

Selenium 有多個(gè)項(xiàng)目構(gòu)成,形成了一個(gè)多功能的測試系統(tǒng):

  • Selenium Core:支持DHTML 的測試案例(效果類似數(shù)據(jù)驅(qū)動測試)书蚪,它是Selenium IDE 和Selenium RC
    的引擎。
  • Selenium Grid - 允許您在不同的計(jì)算機(jī)上并行運(yùn)行不同瀏覽器的測試迅栅。也就是說殊校,針對運(yùn)行不同瀏覽器和操作系統(tǒng)的不同計(jì)算機(jī)同時(shí)運(yùn)行多個(gè)測試。從本質(zhì)上講库继,Selenium-Grid支持分布式測試執(zhí)行箩艺。它允許在分布式測試執(zhí)行環(huán)境中運(yùn)行測試。
  • Selenium IDE - 用于開發(fā)Selenium測試用例的工具宪萄。它是一個(gè)易于使用的Chrome和Firefox擴(kuò)展艺谆,通常是開發(fā)測試用例的最有效方式。它使用現(xiàn)有的Selenium命令為您在瀏覽器中記錄用戶操作拜英,并使用該元素的上下文定義參數(shù)静汤。這不僅節(jié)省了時(shí)間,而且是學(xué)習(xí)Selenium腳本語法的絕佳方式居凶。
  • Selenium RC (Selenium Remote Control) - 是一個(gè)客戶端/服務(wù)器系統(tǒng)虫给,允許您使用幾乎任何編程語言和測試框架在本地或其他計(jì)算機(jī)上控制Web瀏覽器。
  • Selenium WebDriver - 主要新功能是集成WebDriver API侠碧。除了解決Selenium-RC API中的一些限制之外抹估,WebDriver還旨在提供更簡單,更簡潔的編程接口弄兜。Selenium-WebDriver的開發(fā)是為了更好地支持動態(tài)網(wǎng)頁药蜻,頁面元素可能會在不重新加載頁面的情況下發(fā)生變化瓷式。WebDriver的目標(biāo)是提供精心設(shè)計(jì)的面向?qū)ο蟮腁PI,為現(xiàn)代高級Web應(yīng)用程序測試問題提供改進(jìn)的支持语泽。

XPath
1.什么是XPath
Wikipedia這樣解釋XPath:XPath即為XML路徑語言(XML Path Language)贸典,它是一種用來確定XML文檔中某部分位置的語言。這里討論的是在XPath語言規(guī)范下踱卵,封裝而成的一種解析XML文檔的技術(shù)廊驼。在PHP,Python里惋砂,具體是指xpath這個(gè)函數(shù)妒挎。所以,Wikipedia提到的對XML文檔某部分位置的定位班利,就是用XPath的規(guī)范饥漫,定位到這個(gè)部分,為我所用罗标。我們的目的是解析HTML網(wǎng)頁中的元素庸队,將HTML轉(zhuǎn)換成XML文檔之后,就是XPath出鞘之時(shí)闯割。具體的轉(zhuǎn)換方法彻消,因開發(fā)環(huán)境而異,后文會附上一些實(shí)際工作中遇到的問題宙拉。下文所述的xpath()函數(shù)均指PHP語言核心函數(shù)庫中的函數(shù)xpath()宾尚。

2.XPath 路徑表達(dá)式
在使用XPath之前,需要先了解下XPath的節(jié)點(diǎn)谢澈,路徑概念煌贴,這也是XPath這門語言的單詞和語法。不求全通锥忿,至少了解嘛牛郑。其中,路徑表達(dá)式是xpath()的傳入?yún)?shù)敬鬓。xpath()使用路徑表達(dá)式對XML文檔中的某個(gè)節(jié)點(diǎn)(或者多個(gè)節(jié)點(diǎn))進(jìn)行定位淹朋。路徑表達(dá)式實(shí)例:/html/body/div[@class=”content”] 。按照節(jié)點(diǎn)和路徑概念钉答,這個(gè)表達(dá)式是按照html础芍,body,div層級關(guān)系数尿,尋找屬性里有class=”content”的div節(jié)點(diǎn)仑性。當(dāng)然,這個(gè)結(jié)果也可能是多個(gè)節(jié)點(diǎn)右蹦。

Beautiful Soup 庫一般被稱為bs4庫诊杆,支持Python3鲫懒,是我們寫爬蟲非常好的第三方庫。因用起來十分的簡便流暢刽辙。所以也被人叫做“美味湯”。目前bs4庫的最新版本是4.60甲献。下文會介紹該庫的最基本的使用宰缤,具體詳細(xì)的細(xì)節(jié)還是要看:[官方文檔](Beautiful Soup Documentation)

bs4
Beautiful Soup 庫一般被稱為bs4庫,支持Python3晃洒,是我們寫爬蟲非常好的第三方庫慨灭。因用起來十分的簡便流暢。所以也被人叫做“美味湯”球及。目前bs4庫的最新版本是4.60氧骤。下文會介紹該庫的最基本的使用,具體詳細(xì)的細(xì)節(jié)還是要看:[官方文檔](Beautiful Soup Documentation)

bs4庫的安裝
安裝的方式非常簡單:我們用pip工具在命令行里進(jìn)行安裝

 pip install beautifulsoup4

事實(shí)上吃引,bs4庫 是解析筹陵、遍歷、維護(hù)镊尺、“標(biāo)簽樹“的功能庫朦佩。
通俗一點(diǎn)說就是: bs4庫把html源代碼重新進(jìn)行了格式化,

從而方便我們對其中的節(jié)點(diǎn)庐氮、標(biāo)簽语稠、屬性等進(jìn)行操作

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市弄砍,隨后出現(xiàn)的幾起案子仙畦,更是在濱河造成了極大的恐慌,老刑警劉巖音婶,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慨畸,死亡現(xiàn)場離奇詭異,居然都是意外死亡桃熄,警方通過查閱死者的電腦和手機(jī)先口,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞳收,“玉大人碉京,你說我怎么就攤上這事∶睿” “怎么了谐宙?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長界弧。 經(jīng)常有香客問我凡蜻,道長搭综,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任划栓,我火速辦了婚禮兑巾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忠荞。我一直安慰自己蒋歌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布委煤。 她就那樣靜靜地躺著堂油,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碧绞。 梳的紋絲不亂的頭發(fā)上府框,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音讥邻,去河邊找鬼迫靖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛计维,可吹牛的內(nèi)容都是我干的袜香。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼鲫惶,長吁一口氣:“原來是場噩夢啊……” “哼蜈首!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起欠母,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤欢策,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后赏淌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踩寇,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年六水,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺孙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掷贾,死狀恐怖睛榄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情想帅,我是刑警寧澤场靴,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響旨剥,放射性物質(zhì)發(fā)生泄漏咧欣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一轨帜、第九天 我趴在偏房一處隱蔽的房頂上張望魄咕。 院中可真熱鬧,春花似錦蚌父、人聲如沸蚕礼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至朝聋,卻和暖如春嗡午,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冀痕。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工荔睹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人言蛇。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓僻他,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腊尚。 傳聞我的和親對象是個(gè)殘疾皇子吨拗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 洞見SELENIUM自動化測試 寫在最前面:目前自動化測試并不屬于新鮮的事物,或者說自動化測試的各種方法論已經(jīng)層出...
    厲鉚兄閱讀 6,709評論 3 47
  • 這篇文章在介紹官網(wǎng)的同時(shí)使用了比較多的腳本示例婿斥,示例里遇到的問題有部分在本篇文章進(jìn)行了解釋劝篷,還有一篇文章專門記錄了...
    顧顧314閱讀 12,899評論 3 32
  • Day 4 測試腳本講義 經(jīng)過了前面三天的課程內(nèi)容,我們應(yīng)該初步基本的掌握了手工測試民宿。接下來我們來面對另一個(gè)高度的...
    厲鉚兄閱讀 4,798評論 1 10
  • Selenium 官網(wǎng)Selenium WebDriver官網(wǎng)webdriver實(shí)用指南python版本 WebD...
    顧顧314閱讀 46,955評論 0 34
  • 君若清路塵活鹰,妾若濁水泥哈恰,浮沉各異勢,會合何時(shí)諧志群? ——《七哀詩》曹植 一 清塵踢著小石頭着绷,鼓著嘴,嘟囔著:“我才不...
    糖點(diǎn)什么閱讀 371評論 0 0