




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本章導(dǎo)讀隨著網(wǎng)絡(luò)的迅速發(fā)展,如何有效地提取并利用信息已經(jīng)成為一個(gè)巨大的挑戰(zhàn)。為了更高效地獲取指定信息,需定向抓取并分析網(wǎng)頁資源,從而促進(jìn)了網(wǎng)絡(luò)爬蟲的發(fā)展。本章將介紹使用Python編寫網(wǎng)絡(luò)爬蟲的方法。學(xué)習(xí)目標(biāo)理解網(wǎng)絡(luò)爬蟲的基本操作流程掌握通過requests庫進(jìn)行數(shù)據(jù)抓取的方法掌握通過正則表達(dá)式進(jìn)行數(shù)據(jù)解析的方法掌握運(yùn)用beautifulsoup4庫解析和處理數(shù)據(jù)的方法概述12.1概述
網(wǎng)絡(luò)爬蟲(WebSpider)又稱網(wǎng)絡(luò)蜘蛛或網(wǎng)絡(luò)機(jī)器人,是一段用來實(shí)現(xiàn)自動(dòng)采集網(wǎng)站數(shù)據(jù)的程序。
網(wǎng)絡(luò)爬蟲不僅能夠?yàn)樗阉饕娌杉W(wǎng)絡(luò)信息,而且還可以作為定向信息采集器,定向采集某些網(wǎng)站中的特定信息。
對(duì)于定向信息的爬取,網(wǎng)絡(luò)爬蟲主要采取數(shù)據(jù)抓取、數(shù)據(jù)解析、數(shù)據(jù)入庫的操作流程。概述12.1概述
(1)數(shù)據(jù)抓取:發(fā)送構(gòu)造的HTTP請(qǐng)求,獲得包含所需數(shù)據(jù)的HTTP響應(yīng);
(2)數(shù)據(jù)解析:對(duì)HTTP響應(yīng)的原始數(shù)據(jù)進(jìn)行分析、清洗,以提取出所需要的數(shù)據(jù);
(3)數(shù)據(jù)入庫:將數(shù)據(jù)進(jìn)一步保存到數(shù)據(jù)庫(或文本文件)中,用于構(gòu)建知識(shí)庫。爬蟲客戶端目標(biāo)網(wǎng)站數(shù)據(jù)庫(1)發(fā)送HTTP請(qǐng)求(2)獲取響應(yīng)內(nèi)容(3)解析、清洗、入庫Python提供了許多與網(wǎng)絡(luò)爬蟲相關(guān)的庫。其中,在數(shù)據(jù)抓取方面requests;在數(shù)據(jù)解析方面包括re(正則表達(dá)式),beautifulsoup4。12.2.1requests庫概述12.2.2使用requests庫12.2.3簡(jiǎn)單應(yīng)用數(shù)據(jù)抓取12.2.1requests庫概述requests庫提供了很多功能特性,幾乎涵蓋了所有Web服務(wù)的需求,包括URL獲取、HTTP長(zhǎng)連接和連接緩存、HTTP會(huì)話、瀏覽器式的SSL驗(yàn)證、身份認(rèn)證、Cookie會(huì)話、文件分塊上傳、流下載、HTTP(S)代理功能、連接超時(shí)處理等。由于requests庫是第三方庫,因此,需要通過pip3指令進(jìn)行安裝,pip3安裝命令如下:C:\>pip3installrequests安裝完requests庫后,在Python交互模式下輸入導(dǎo)入requests庫的語句:>>>importrequests如果沒有提示錯(cuò)誤,則說明安裝成功。數(shù)據(jù)抓取12.2.2使用requests庫網(wǎng)絡(luò)爬蟲工作流程的第一步是數(shù)據(jù)的抓取,也就是使用requests庫實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求和獲取HTTP響應(yīng)的內(nèi)容。1.發(fā)送HTTP請(qǐng)求requests庫提供了幾乎所有的HTTP請(qǐng)求方法:函數(shù)描述對(duì)應(yīng)于HTTP的GET方法,請(qǐng)求指定的頁面信息,并返回實(shí)體主體;是獲取網(wǎng)頁最常用的方法,可通過timeout=n設(shè)置每次請(qǐng)求超時(shí)時(shí)間為n秒get(url[,timeout=n])head(url)對(duì)應(yīng)于HTTP的HEAD方法,類似于get請(qǐng)求,只不過返回的響應(yīng)中沒有具體的內(nèi)容,用于獲取報(bào)頭post(url,data={'key':'value'})對(duì)應(yīng)于HTTP的POST方法,向指定資源提交數(shù)據(jù),并處理請(qǐng)求(如提交表單或者上傳文件);其中字典用于傳遞客戶數(shù)據(jù)對(duì)應(yīng)于HTTP的DELETE方法,請(qǐng)求服務(wù)器刪除指定的頁面delete(url)options(url)對(duì)應(yīng)于HTTP的OPTIONS方法,允許客戶端查看服務(wù)器的性能對(duì)應(yīng)于HTTP的PUT方法,從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定put(url,data={'key':'value'})的文檔內(nèi)容。其中字典用于傳遞客戶數(shù)據(jù)數(shù)據(jù)抓取12.2.2使用requests庫調(diào)用get()函數(shù)是獲取網(wǎng)頁最常用的方式,在調(diào)用requests.get()函數(shù)后,返回的網(wǎng)頁內(nèi)容會(huì)保存為一個(gè)Response對(duì)象。>>>importrequests>>>r=requests.get('')>>>type(r)<class'requests.models.Response'>#導(dǎo)入requests庫#使用get函數(shù)打開百度鏈接#查看返回值r的類型數(shù)據(jù)抓取12.2.2使用requests庫有時(shí)我們需要在URL中傳遞參數(shù)。例如:在采集百度搜索結(jié)果時(shí),需要傳遞wd參數(shù)(搜索詞)。requests允許使用params關(guān)鍵字參數(shù),以一個(gè)字符串字典來提供這些參數(shù)。>>>importrequests>>>payload={'wd':'Python'}>>>r=requests.get("/s",params=payload)#傳入U(xiǎn)RL參數(shù)>>>r.url'/s?wd=Python'#導(dǎo)入requests庫#定義字典#輸出URL的值用瀏覽器打開被編碼的URL得到百度搜索關(guān)鍵字“Python”的結(jié)果。數(shù)據(jù)抓取12.2.2使用requests庫2.獲取HTTP響應(yīng)的內(nèi)容和瀏覽器的交互過程一樣,requests.get()代表發(fā)送HTTP請(qǐng)求的過程,它返回的Response對(duì)象代表HTTP響應(yīng)。我們可以通過Response對(duì)象的不同屬性來獲取不同內(nèi)容,其語法格式如下:對(duì)象名.屬性名Response對(duì)象的常用屬性:屬性描述textHTTP響應(yīng)內(nèi)容的字符串形式,即URL對(duì)應(yīng)的頁面內(nèi)容contentHTTP響應(yīng)內(nèi)容的二進(jìn)制形式encodingHTTP響應(yīng)內(nèi)容的編碼方式status_codeHTTP請(qǐng)求的返回狀態(tài),為整數(shù),如200表示連接成功、404表示連接失敗演示一下吧!數(shù)據(jù)抓取12.2.2使用requests庫除了屬性,Response對(duì)象還提供了兩個(gè)常用的方法:(1)json()方法:如果HTTP響應(yīng)內(nèi)容包含JSON格式數(shù)據(jù),則該方法解析JSON數(shù)據(jù)。提示JSON的全稱是“JavaScriptObjectNotation”,即JavaScript對(duì)象表示法,是一種基于文本又獨(dú)立于語言的輕量級(jí)數(shù)據(jù)交換格式,易于閱讀和理解。>>>importrequests#導(dǎo)入requests庫例如:>>>r=requests.get('/service/getIpInfo.php?ip=8')>>>r.json(){'code':0,'data':{'ip':'8','country':'中國(guó)','area':'','region':'江蘇','city':'南京','county':'XX','isp':'鐵通','country_id':'CN','area_id':'','region_id':'320000','city_id':'320100','county_id':'xx','isp_id':'100020'}}#調(diào)用json()方法數(shù)據(jù)抓取12.2.2使用requests庫(2)raise_for_status()方法:該方法能在非成功響應(yīng)后產(chǎn)生異常,即只要返回的請(qǐng)求狀態(tài)status_code不是200,該方法就會(huì)產(chǎn)生一個(gè)異常,可用try-except異常處理結(jié)果進(jìn)行處理。提示一般情況下,需要在發(fā)送HTTP請(qǐng)求之后,調(diào)用raise_for_status()方法判斷有無發(fā)生異常,如果沒有發(fā)生異常,則進(jìn)行數(shù)據(jù)的處理,否則不進(jìn)行數(shù)據(jù)處理。數(shù)據(jù)抓取12.2.3簡(jiǎn)單應(yīng)用例:爬取“”網(wǎng)站的內(nèi)容,并將爬取到的內(nèi)容輸出。importrequests#導(dǎo)入requests庫#異常處理try:r=requests.get('')#使用get函數(shù)打開指定的urlr.raise_for_status()r.encoding='utf-8'print(r.text)#如果狀態(tài)不是200,則引發(fā)異常#更改編碼方式#用字符串的形式顯示頁面內(nèi)容except:print("網(wǎng)站連接失??!")#發(fā)生異常則輸出“網(wǎng)站連接失?。 背绦蜻\(yùn)行效果12.3.1正則表達(dá)式12.3.2beautifulsoup4庫數(shù)據(jù)解析元字符和語法12.3.1正則表達(dá)式說明表達(dá)式實(shí)例1.正則表達(dá)式基礎(chǔ)字符一般字符.\[][^]匹配自身匹配除換行符外的任意單個(gè)字符python匹配pythona.c匹配abc,acc等正則表達(dá)式是用于轉(zhuǎn)義字符處理字符串的強(qiáng)大工具,它使用預(yù)定義的特定模式a\.c去匹配匹配a.c;一類具有共同特征的a\\c匹配a\c字符串,主要不在用于快速、準(zhǔn)確地完成復(fù)雜字符串的查找、替換[]中的字符等。[^abc]匹配除a,b,c之外的字符用來表示一組字符a[bcd]e(同a[b-d]e)匹配abe,ace和ade預(yù)定義字符集(可用在字符集[]中)\d\D\s\S\w\W匹配任意數(shù)字,等價(jià)于[0-9]匹配任意非數(shù)字匹配任意空白字符,等價(jià)于[\t\n\r\f]匹配任意非空字符匹配數(shù)字、字母、下劃線匹配非數(shù)字、字母、下劃線a\dc匹配a1c,a2c等a\Dc匹配abc,asc等a\sc匹配aca\Sc匹配abc等a\wc匹配a1c,abc等a\Wc匹配ac數(shù)量詞(可用在字符或()之后)*+匹配位于*之前的字符0次或多次匹配位于+之前的字符1次或多次匹配位于?之前的字符0次或1次,當(dāng)此字符緊隨任何其他限定符abc*匹配ab,abccc等abc+匹配abc,abccc等?{m}abc?匹配ab和abcab{2}c匹配abbc(*、+、?、{m}、{m,n})之后時(shí),匹配模式為“非貪婪”匹配前一個(gè)字符m次匹配前一個(gè)字符m至n次,省略m則匹配0至n次;省略n則匹配m至{m,n}ab{1,2}c匹配abc和abbc無限次邊界匹配^$匹配行首匹配行尾^abc匹配以abc開始的行abc$匹配以abc結(jié)尾的行邏輯、分組|()匹配位于|之前或之后的字符將位于()內(nèi)的內(nèi)容作為一個(gè)整體a|b匹配a或b(abc){2}匹配abcabc數(shù)據(jù)解析12.3.1正則表達(dá)式具體應(yīng)用時(shí),可以單獨(dú)使用某種類型的元字符,但處理復(fù)雜字符串時(shí),經(jīng)常需要將多個(gè)正則表達(dá)式元字符進(jìn)行組合。下面給出了幾個(gè)示例。
(1)'[a-zA-Z0-9]'可以匹配一個(gè)任意大小寫字母或數(shù)字。
(2)'^(\w){6,15}$'匹配長(zhǎng)度為6~15的字符串,可以包含數(shù)字、字母和下劃線。
(3)'^\w+@(\w+\.)+\w+$'檢查給定字符串是否為合法電子郵件地址。
(4)'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'檢查給定字符串是否為合法IP地址。數(shù)據(jù)解析12.3.1正則表達(dá)式2.re模塊在Python中,主要使用re模塊來實(shí)現(xiàn)正則表達(dá)式的操作,該模塊的常用方法下表所示。方法描述pile(pattern[,flags])re.search(pattern,string[,flags])或用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式(Pattern)對(duì)象掃描整個(gè)字符串并返回第一個(gè)成功的匹配search(string[,pos[,endpos]])re.match(pattern,string[,flags])或嘗試從字符串的起始位置匹配一個(gè)模式,返回match(string[,pos[,endpos]])match()對(duì)象或nonere.findall(pattern,string[,flags])或findall(string[,pos[,endpos]])re.sub(pattern,repl,string[,count=0])或在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個(gè)列表,如果沒有找到匹配的,則返回空列表用于替換字符串中的匹配項(xiàng)sub(repl,string[,count])re.split(pattern,string[,maxsplit=0])或按照能夠匹配的子串將字符串分割后返回列表split(string[,maxsplit])數(shù)據(jù)解析12.3.1正則表達(dá)式1)直接使用re模塊方法例如:>>>importre>>>text='Python.C.Java...PHP'#定義text字符串>>>re.split('[\.]+',text)['Python','C','Java','PHP']>>>re.findall('[a-zA-Z]+',text)['Python','C','Java','PHP']#導(dǎo)入re模塊#調(diào)用split()函數(shù)對(duì)text進(jìn)行分割#調(diào)用findall()函數(shù)查找由大小寫字母組成的字符串?dāng)?shù)據(jù)解析12.3.1正則表達(dá)式2)使用正則表達(dá)式對(duì)象編譯后的正則表達(dá)式對(duì)象不僅可以提高字符串的處理速度,還提供了更加強(qiáng)大的字符串處理功能。此處,我們首先使用re模塊的compile()方法將正則表達(dá)式編譯成正則表達(dá)式對(duì)象,然后使用正則表達(dá)式對(duì)象提供的方法進(jìn)行字符串處理。例如:>>>importre>>>p=pile(r'\d+')>>>print(p.findall('one1two2three3four4'))#調(diào)用findall()方法查找數(shù)字['1','2','3','4']#導(dǎo)入re模塊#將正則表達(dá)式編譯成正則表達(dá)式對(duì)象數(shù)據(jù)解析12.3.1正則表達(dá)式例:爬取“”網(wǎng)站的內(nèi)容,解析數(shù)據(jù),將該網(wǎng)站上的“.jpg“圖片下載到本地。爬取網(wǎng)站內(nèi)容在正則表達(dá)式中包含子組下載圖片?可用正則表達(dá)式?r'src="(.+?\.jpg)"'?將獲取到的每條路徑加到r'src=".+?\.jpg"'來匹配字符串“”后面構(gòu)成完整的鏈接地址?使用requests.get()函數(shù)獲取內(nèi)容,并將獲取到的內(nèi)容以二進(jìn)制形式寫入到文件中進(jìn)行保存。數(shù)據(jù)解析12.3.1正則表達(dá)式importrequests#導(dǎo)入requests庫importre#定義一個(gè)getHtml()函數(shù),根據(jù)填寫的url參數(shù)獲取數(shù)據(jù)defgetHtml(url):#導(dǎo)入re模塊#異常處理try:r=requests.get(url)r.raise_for_status()r.encoding='utf-8'returnr.text#使用get函數(shù)打開指定的url#如果狀態(tài)不是200,則引發(fā)異常#更改編碼方式#返回頁面內(nèi)容except:return""#發(fā)生異常返回空字符數(shù)據(jù)解析12.3.1正則表達(dá)式#定義一個(gè)getImg()函數(shù),根據(jù)填寫的html參數(shù)獲取圖片并存儲(chǔ)defgetImg(html):reg=r'src="(.+?\.jpg)"'imglist=re.findall(reg,html)print(imglist)i=0forurlinimglist:#定義正則表達(dá)式#查找頁面中所有符合條件的字符串#輸出列表結(jié)果#定義i用于給下載的圖片命名#遍歷#以寫入方式打開二進(jìn)制文件withopen(str(i)+".jpg","wb")asfd:#路徑前加上“”response=requests.get("/"+url)#獲取內(nèi)容fd.write(response.content)print('圖片',i,"保存成功\n")i+=1#寫入文件#輸出提示信息#i加1html=getHtml("/")#調(diào)用獲取頁面內(nèi)容函數(shù)getImg(html)#調(diào)用獲取圖片并存儲(chǔ)函數(shù)數(shù)據(jù)解析12.3.1正則表達(dá)式程序運(yùn)行效果數(shù)據(jù)解析12.3.2beautifulsoup4庫beautifulsoup4庫也稱為BeautifulSoup庫或bs4庫,用于解析和處理HTML和XML文件,其最大優(yōu)點(diǎn)是能夠根據(jù)HTML和XML語法建立解析樹,進(jìn)而提高解析效率。例如:有以下HTML文件:<html><head></head><body>head<a>first</a><a>second</a>htmlabody</body>a</html>數(shù)據(jù)解析12.3.2beautifulsoup4庫由于beautifulsoup4庫是第三方庫,因此,需要通過pip3指令進(jìn)行安裝,pip3安裝命令如下:>>>C:\>pip3installbeautifulsoup4
beautifulsoup4庫中最重要的類是BeautifulSoup,它的實(shí)例化對(duì)象相當(dāng)于一個(gè)頁面。
可采用from-import語句導(dǎo)入庫中的BeautifulSoup類,然后使用BeautifulSoup()創(chuàng)建一個(gè)BeautifulSoup對(duì)象。例如:>>>importrequests#導(dǎo)入requests庫>>>frombs4importBeautifulSoup>>>r=requests.get('')>>>r.encoding='utf-8'>>>soup=BeautifulSoup(r.text)>>>type(soup)<class'bs4.BeautifulSoup'>#從bs4庫中導(dǎo)入BeautifulSoup類#使用get函數(shù)打開百度鏈接#更改編碼方式#創(chuàng)建BeautifulSoup對(duì)象#查看soup類型數(shù)據(jù)解析12.3.2beautifulsoup4庫創(chuàng)建的BeautifulSoup對(duì)象是一個(gè)樹形結(jié)構(gòu),它包含HTML頁面中的標(biāo)簽元素,如<head>、<body>等。也就是說,HTML中的主要結(jié)構(gòu)都變成了BeautifulSoup對(duì)象的一個(gè)屬性,可通過“對(duì)象名.屬性名”形式獲取屬性值。屬性描述headHTML頁面的<head>內(nèi)容titleHTML頁面標(biāo)題,在<head>中,由<title>標(biāo)記bodypaHTML頁面的<body>內(nèi)容HTML頁面中第一個(gè)<p>內(nèi)容HTML頁面中第一個(gè)<a>內(nèi)容stringsHTML頁面所有呈現(xiàn)在Web上的字符串,即標(biāo)簽的內(nèi)容stripped_stringsHTML頁面所有呈現(xiàn)在Web上的非空格字符串演示一下吧!數(shù)據(jù)解析12.3.2beautifulsoup4庫每一個(gè)標(biāo)簽在beautifulsoup4庫中又是一個(gè)對(duì)象,稱為Tag對(duì)象。例如:查看“soup.p”的類型可以看出“soup.p”是一個(gè)Tag對(duì)象:>>>type(soup.p)#查看“soup.p”類型<class'bs4.element.Tag'>Tag對(duì)象有4個(gè)常用屬性屬性描述name字符串,標(biāo)簽的名字,如head,title等attrs字典,包含了頁面標(biāo)簽的所有屬性(尖括號(hào)內(nèi)的其他項(xiàng)),如hrefcontents列表,這個(gè)標(biāo)簽下所有子標(biāo)簽的內(nèi)容string字符串,標(biāo)簽所包圍的文字,網(wǎng)頁中真實(shí)的文字(尖括號(hào)之間的內(nèi)容)演示一下吧!find_all('div',{'class':'bk_show_info'})find_all(name,attrs,recursive,string,limit)掌握通過正則表達(dá)式進(jìn)行數(shù)據(jù)解析的方法match(pattern,string[,flags])或1)直接使用re模塊方法用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式調(diào)用get()函數(shù)是獲取網(wǎng)頁最常用的方式,在調(diào)用requests.#調(diào)用json()方法python匹配python除了屬性,Response對(duì)象還提供了兩個(gè)常用的方法:reg=r'src="(.2beautifulsoup4庫txt','w')asfd:本章將介紹使用Python編寫網(wǎng)絡(luò)爬蟲的方法。get(url,timeout=30)#使用get函數(shù)打開指定的url數(shù)據(jù)解析12.3.2beautifulsoup4庫當(dāng)需要列出對(duì)應(yīng)標(biāo)簽的所有內(nèi)容或找到非第一個(gè)標(biāo)簽時(shí),可以使用BeautifulSoup對(duì)象的find_all()方法。該方法會(huì)遍歷整個(gè)HTML文件,按照條件返回標(biāo)簽內(nèi)容(列表類型)。其語法格式如下:對(duì)象名.find_all(name,attrs,recursive,string,limit)
name表示標(biāo)簽名;
attrs表示按照標(biāo)簽屬性值檢索(需列出屬性名和值);
recursive表示查找層次(BeautifulSoup默認(rèn)檢索當(dāng)前標(biāo)簽的所有子孫節(jié)點(diǎn),如果只搜索標(biāo)簽的直接子節(jié)點(diǎn),可以使用參數(shù)recursive=False);
string表示按照關(guān)鍵字檢索string屬性內(nèi)容(采用string=開始);
limit表示返回結(jié)果的個(gè)數(shù),默認(rèn)返回全部結(jié)果。演示一下吧!數(shù)據(jù)解析12.3.2beautifulsoup4庫例:爬取“”網(wǎng)站的內(nèi)容,解析數(shù)據(jù),輸出該網(wǎng)站中的圖書信息。importrequests#導(dǎo)入requests庫importrefrombs4importBeautifulSoup#定義一個(gè)getHtml()函數(shù),根據(jù)填寫的url參數(shù)獲取數(shù)據(jù)defgetHtml(url):#導(dǎo)入re模塊#導(dǎo)入BeautifulSoup#異常處理try:r=requests.get(url)r.raise_for_status()r.encoding='utf-8'returnr.text#使用get函數(shù)打開指定的url#如果狀態(tài)不是200,則引發(fā)異常#更改編碼方式#返回頁面內(nèi)容except:return""#發(fā)生異常返回空字符數(shù)據(jù)解析12.3.2beautifulsoup4庫#定義數(shù)據(jù)解析函數(shù),用于找到符合條件的數(shù)據(jù)并輸出defgetcon(html):bsObj=BeautifulSoup(html)#找到所有class為bk_show_info的div,只獲取圖書信息divList=bsObj.find_all('div',{'class':'bk_show_info'})allbook=[]fordivsindivList:#將html對(duì)象轉(zhuǎn)化為BeautifulSoup對(duì)象#存儲(chǔ)全部數(shù)據(jù),二維列表book_info=[]book_name=divs.h4['data-name']book_info.append(book_name)p_list=divs.find_all('p')forp_contentinp_list:#存儲(chǔ)單本圖書信息,一維列表#獲取圖書名稱#將圖書名稱存儲(chǔ)到book_info#查找單本圖書的其他信息(在標(biāo)簽p中)book_info.append(p_content.string)#將p標(biāo)簽中的信息存入book_infoallbook.append(book_info)#將單本圖書的信息存入allbook#輸出獲取到的圖書信息forbookinallbook:print(book)html=getHtml("/")getcon(html)#調(diào)用獲取頁面內(nèi)容函數(shù)#調(diào)用解析數(shù)據(jù)函數(shù)數(shù)據(jù)解析12.3.2beautifulsoup4庫程序運(yùn)行效果典型案例12.4采集百度搜索結(jié)果例:爬取百度搜索“Python程序設(shè)計(jì)教程”的結(jié)果,并將搜索結(jié)果保存到“12-4.txt”文件中。(1)通過requests庫的get()函數(shù)提交查詢,響應(yīng)結(jié)果即為百度的搜索結(jié)果。(2)人工分析百度搜索結(jié)果頁面HTML代碼,<div…data-tools='{"title":"…","url":"…"}'>…</div>(3)利用beautifulsoup4庫找到名為div的標(biāo)簽,并找到data-tools的屬性值,然后提取帶有title的字符串,可以看到data-tools內(nèi)部由{}括起來的數(shù)據(jù)是典型的JSON格式,可以利用json庫將其轉(zhuǎn)換為字典,以便于操作。(4)將獲取到的數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)教育的智慧生態(tài)環(huán)境
- 荊州理工職業(yè)學(xué)院《二外法四》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西中醫(yī)藥大學(xué)賽恩斯新醫(yī)藥學(xué)院《暖通空調(diào)綜合課程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢信息傳播職業(yè)技術(shù)學(xué)院《英語詩歌欣賞》2023-2024學(xué)年第二學(xué)期期末試卷
- 桂林航天工業(yè)學(xué)院《建筑設(shè)計(jì)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院《小學(xué)數(shù)學(xué)研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 白城師范學(xué)院《機(jī)電設(shè)備故障診斷與維修技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 玉溪農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《證券投資顧問業(yè)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西建設(shè)職業(yè)技術(shù)學(xué)院《數(shù)字信號(hào)處理C》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊經(jīng)濟(jì)職業(yè)學(xué)院《機(jī)械工程綜合實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 關(guān)節(jié)鏡技術(shù)在骨科的應(yīng)用
- 2023年版-腫瘤內(nèi)科臨床路徑
- (完整版)水電工安全技術(shù)交底
- 《中國(guó)傳統(tǒng)文化心理學(xué)》課件第五章 傳統(tǒng)文化與心理治療(修)
- Q∕GDW 11445-2015 國(guó)家電網(wǎng)公司管理信息系統(tǒng)安全基線要求
- java考試管理系統(tǒng)源代碼開題報(bào)告外文翻譯英文文獻(xiàn)計(jì)001
- 蒸汽疏水閥性能監(jiān)測(cè)斯派莎克工程中國(guó)有限公司-Armstrong
- 機(jī)械創(chuàng)新設(shè)計(jì)技術(shù)結(jié)課論文
- 人教版九年級(jí)歷史中考【政治經(jīng)濟(jì)專題復(fù)習(xí)課件44張】(共44張)
- T∕CSEA 6-2018 鋅鎳合金電鍍技術(shù)條件
- 湘教版初中地理會(huì)考重點(diǎn)圖復(fù)習(xí)匯集
評(píng)論
0/150
提交評(píng)論