版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1數(shù)據(jù)科學(xué)導(dǎo)論 第十六章 網(wǎng)絡(luò)抓取/網(wǎng)絡(luò)爬蟲(chóng)入門(mén)1數(shù)據(jù)科學(xué)導(dǎo)論 第十六章 網(wǎng)絡(luò)抓取/網(wǎng)絡(luò)爬蟲(chóng)入門(mén)2主要內(nèi)容一 引言二 HTML網(wǎng)頁(yè)結(jié)構(gòu)三 網(wǎng)絡(luò)抓取的步驟四 網(wǎng)絡(luò)爬蟲(chóng)的若干案例五 表格數(shù)據(jù)爬取2主要內(nèi)容一 引言3一 引言3一 引言4目 的瀏覽器上看到的頁(yè)面背后是HTML形式的非結(jié)構(gòu)化數(shù)據(jù).(unstructured data)目的是把網(wǎng)絡(luò)上的這些非結(jié)構(gòu)化數(shù)據(jù)中所需要的信息提取出來(lái).網(wǎng)絡(luò)抓取(web scraping)泛指從網(wǎng)頁(yè)的各個(gè)部分利用編程來(lái)獲得需要的信息, 在國(guó)內(nèi), 網(wǎng)絡(luò)抓取往往被稱為網(wǎng)絡(luò)爬蟲(chóng)(web crawler).特別要說(shuō)明的是本書(shū)不是網(wǎng)絡(luò)爬蟲(chóng)的專門(mén)教材, 本章的內(nèi)容僅供讀者入門(mén)參考
2、, 我們抓取的數(shù)據(jù)均來(lái)自網(wǎng)絡(luò)上公開(kāi)的信息, 數(shù)據(jù)量較小, 僅以教學(xué)為目的, 我們希望所有讀者也能遵循這一原則, 合理、合法且高效地獲取公開(kāi)的數(shù)據(jù)集.4目 的瀏覽器上看到的頁(yè)面背后是HTML形式的非結(jié)構(gòu)化數(shù)據(jù)5手 段 人們可以通過(guò)幾乎所有的編程語(yǔ)言來(lái)實(shí)行網(wǎng)絡(luò)抓取, 甚至還可以使用Google Docs.我們將使用Python 和R 兩種語(yǔ)言通過(guò)相對(duì)簡(jiǎn)單的實(shí)際例子來(lái)介紹網(wǎng)絡(luò)抓取的過(guò)程.使用R 來(lái)入門(mén)網(wǎng)絡(luò)抓取會(huì)比較容易, 但做更復(fù)雜的網(wǎng)絡(luò)抓取就不那么容易.使用Python做網(wǎng)絡(luò)抓取, 如果對(duì)網(wǎng)絡(luò)結(jié)構(gòu)不熟悉, 一開(kāi)始可能會(huì)稍微慢些, 但隨著時(shí)間的推移, 會(huì)覺(jué)得越來(lái)越得心應(yīng)手.5手 段 6二 HTML網(wǎng)
3、絡(luò)結(jié)構(gòu)6二 HTML網(wǎng)絡(luò)結(jié)構(gòu)7HTML HTML 為超文本標(biāo)記語(yǔ)言(hyper text markup language) 的英文首字母縮寫(xiě), 用于創(chuàng)建網(wǎng)頁(yè)的基本結(jié)構(gòu)元素.這意味著它通過(guò)結(jié)構(gòu)和語(yǔ)義信息來(lái)“標(biāo)記” 文檔中的內(nèi)容, 以指示瀏覽器如何顯示頁(yè)面.圖16.1不列顛百科全書(shū)的頁(yè)面(左)及其HTML代碼(右) 7HTML 圖16.1不列顛百科全書(shū)的頁(yè)面(左)及其HTM8HTML 一個(gè)基本的網(wǎng)站頁(yè)面通常由三種類型的代碼構(gòu)成:HTML 控制結(jié)構(gòu)元素(structural elements);CSS (cascading style sheets) 給這些元素賦以樣式(style);JavaScr
4、ipt 使得這些元素之間能夠有動(dòng)態(tài)互動(dòng)(dynamic interaction).比如, 字體或圖形及各種元素的顏色及大小等由CSS 確定, 而不同內(nèi)容和不同網(wǎng)頁(yè)之間的交互鏈接及人機(jī)對(duì)話則由JavaScript 控制, 而總的結(jié)構(gòu)由HTML 定義.8HTML 9網(wǎng)頁(yè)代碼 包含在符號(hào)“”之間的內(nèi)容為注釋, 開(kāi)始符為“”, 結(jié)束符為“”. 練習(xí)網(wǎng)頁(yè) 第1級(jí)標(biāo)題 標(biāo)題一共有6級(jí) 第6級(jí)標(biāo)題 這是加了(加大字號(hào), 中心化的)樣式的另一段 中國(guó)人民大 9網(wǎng)頁(yè)代碼 包含在符號(hào)“”之間的內(nèi)容為注10網(wǎng)頁(yè)顯示 作為前面代碼實(shí)現(xiàn)的圖16.2有第1 和第6 級(jí)標(biāo)題及標(biāo)題下面的文字.所有字的大小, 位置的安排等都是
5、由上面代碼決定的.圖16.2 前面HTML代碼相應(yīng)的頁(yè)面10網(wǎng)頁(yè)顯示 作為前面代碼實(shí)現(xiàn)的圖16.2有第1 和第6 11元素和標(biāo)簽的語(yǔ)法標(biāo)簽:在前面網(wǎng)頁(yè)的代碼中, 符號(hào)及稱為標(biāo)簽(tag), 其中為開(kāi)始標(biāo)簽, 而為結(jié)束標(biāo)簽.元素:而標(biāo)簽中的內(nèi)容, 比如html(或)、body(或)、p (或)稱為元素(element).網(wǎng)頁(yè)主要是三個(gè)基本結(jié)構(gòu)元素組成:html, head, 及body.最近一些年又發(fā)展出一些新的結(jié)構(gòu)元素, 包括header, main, nav, article, section, aside, address, footer.11元素和標(biāo)簽的語(yǔ)法12元素和標(biāo)簽的語(yǔ)法 網(wǎng)頁(yè)標(biāo)題
6、 這是一個(gè)文字段落. 開(kāi)始的 為文檔類型聲明, 作用就是為瀏覽器提供一項(xiàng)信息, 即HTML是用什么版本編寫(xiě)的.和之間為文本描述網(wǎng)頁(yè).與之間是可見(jiàn)的頁(yè)面內(nèi)容.標(biāo)記的文本網(wǎng)頁(yè)標(biāo)題定義了在瀏覽器中顯示的頁(yè)面名字, 但不在頁(yè)面顯示.12元素和標(biāo)簽的語(yǔ)法13分層嵌套結(jié)構(gòu)網(wǎng)頁(yè)的結(jié)構(gòu)是分層的, 而且一層套一層.上面基本網(wǎng)絡(luò)中, 作為根元素(root element)的html 為body 和head 的父母(parent), 而元素title 和p 分別是head 和body 的兒女(children), 也是html 的后代(descendant), body 與head、title與p 又是兄弟姐妹(s
7、ibling).html 是所有其他元素的祖先(ancestor).這里代碼的縮進(jìn)顯示各層的嵌套關(guān)系.13分層嵌套結(jié)構(gòu)14頭元素(head) 中的樣式元素head 可以包含許多html 元素, 這些元素不是瀏覽器呈現(xiàn)的頁(yè)面的可見(jiàn)部分.這些元素是描述有關(guān)頁(yè)面的信息, 有base、link、meta、noscript、script、style、template、title, 而title 是必須有的.下頁(yè)代碼及圖16.3顯示了在head 元素中設(shè)置了樣式style 的效果.14頭元素(head) 中的樣式15頭元素(head) 中的樣式This is a titleh2.wu2 color:red
8、; /* h2標(biāo)題的顏色*/* 具有id 為AC 的樣式(style) */#AC background-color: Orange; color: MediumSeaGreen;padding: 25px; text-align: center;/* 所有具有類(class)名字mytown 的樣式*/.mytown background-color: DodgerBlue; color: white; padding: 20px;難得糊涂天下為公 訪問(wèn)天下為公 廣東圖16.3 左邊HTML代碼相應(yīng)的頁(yè)面15頭元素(head) 中的樣式!DOCTYPE html16頭元素(head) 中的樣
9、式下面是對(duì)上面與圖16.3相關(guān)的一些代碼的解釋:h2.wu2 color:red; 表示標(biāo)了class=wu2 的h2 標(biāo)題都是紅色;代碼#AC background-color: Orange; color: MediumSeaGreen; padding:25px; text-align: center;表示凡是標(biāo)了id=“AC” 的元素(這里是“天下為公”) 字段都是橘黃背景、中海綠顏色字體、25px 大小、居中放置. 表示點(diǎn)擊該字段后會(huì)跳id=“AC” 的元素.mytown background-color: DodgerBlue; color: white; padding: 20p
10、x; 表示標(biāo)class=“mytown” 的元素有奇藍(lán)背景, 白字體, 20px 大小.16頭元素(head) 中的樣式下面是對(duì)上面與圖16.3相關(guān)17網(wǎng)絡(luò)元素匯總除了確定網(wǎng)頁(yè)三個(gè)組成部分的元素html, head, 及body 之外, 還有很多其他的HTML元素, 下面做一個(gè)簡(jiǎn)要的匯總:根元素(root element)文檔元數(shù)據(jù)(document metadata)head 提供一般信息(元數(shù)據(jù)), 包括標(biāo)題、鏈接、代碼、樣式等等;base 指定一個(gè)基本URL, 為文檔中包含的所有相關(guān)的URL 使用;link 指定了指向其他外部資源的鏈接;meta 提供有關(guān)HTML 文檔不顯示的描述其他信
11、息的元數(shù)據(jù);style 指定文檔的樣式, 也可以鏈接到外部樣式表;title 定義文檔標(biāo)題(只能有一個(gè));17網(wǎng)絡(luò)元素匯總除了確定網(wǎng)頁(yè)三個(gè)組成部分的元素html, 18網(wǎng)絡(luò)元素匯總body 定義HTML 文檔的正文, 包含文檔的所有內(nèi)容內(nèi)容的劃分部分address 定義文檔(如在body 內(nèi)) 或文章(如在article 內(nèi)) 作者、主人的聯(lián)系信息;article 指獨(dú)立的內(nèi)容;aside 定義了與主要問(wèn)題有關(guān)但又只能作旁白的內(nèi)容;footer 可包含作者、版權(quán)信息、或者到其他頁(yè)面的鏈接;header 一般包含引入相關(guān)頁(yè)面的內(nèi)容;h1, h2, h3, h4, h5, h6 為6 個(gè)水平的節(jié)標(biāo)
12、題, h1 最高;18網(wǎng)絡(luò)元素匯總body 定義HTML 文檔的正文, 包含文19網(wǎng)絡(luò)元素匯總main 包含文檔主要內(nèi)容;nav 定義了一組導(dǎo)航鏈接, 僅用于主要的導(dǎo)航鏈接塊, 并非文檔的所有鏈接都應(yīng)位于nav 元素中;section 包含文檔的節(jié)(而div 僅涉及一頁(yè)的節(jié));文本內(nèi)容p 表示一個(gè)段落;blockquote放在塊中的成段引言, 其他引言放在元素標(biāo)簽 中;div 標(biāo)記定義文檔中的分區(qū)或節(jié);pre 定義預(yù)先格式化的文本; 在網(wǎng)頁(yè)畫(huà)一條水平線;19網(wǎng)絡(luò)元素匯總main 包含文檔主要內(nèi)容;20網(wǎng)絡(luò)元素匯總dl、dt、dd 在一起定義列表, 比如下面左邊的代碼對(duì)應(yīng)于右邊的效果:ol、ul
13、、li 顯示列表 的代碼和效果如右圖:20網(wǎng)絡(luò)元素匯總dl、dt、dd 在一起定義列表, 比如下面21網(wǎng)絡(luò)元素匯總行內(nèi)文本語(yǔ)義部分, 定義單詞、行或任意文本的含義、結(jié)構(gòu)或樣式圖片和多媒體嵌入式內(nèi)容部分腳本部分, 主要是為了創(chuàng)建動(dòng)態(tài)內(nèi)容和網(wǎng)絡(luò)應(yīng)用程序編輯記錄表格的內(nèi)容, 這里的元素用于創(chuàng)建和處理表格數(shù)據(jù)21網(wǎng)絡(luò)元素匯總22HTML的屬性HTML 屬性(HTML attribute) 是在開(kāi)始標(biāo)記中用來(lái)控制元素行為的特殊單詞, 屬于元素類型的修飾符.id 屬性可用在任何地方, 作為一個(gè)元素的唯一識(shí)別符;class 屬性可以在任何HTML 元素上使用, 它為一個(gè)元素指定一個(gè)或多個(gè)名稱;在元素 中的h
14、ref 屬性, 給出與鏈接地址有關(guān)的名詞;在圖形元素 中的src、height、width 以及alt 分別標(biāo)明圖形的位置( src 必須有)、高度、寬度以及(如果原先的圖片不存在) 備用文字;表示樣式的style 屬性用于指定元素的樣式, 如顏色、字體、大小等;被添加到 元素的title 屬性使得鼠標(biāo)懸停在該段落時(shí)會(huì)顯示其值.22HTML的屬性HTML 屬性(HTML attribut23三 網(wǎng)絡(luò)抓取的步驟23三 網(wǎng)絡(luò)抓取的步驟24網(wǎng)絡(luò)抓取的步驟找到目標(biāo)URL.URL (uniform resource locator) 就是網(wǎng)址(web address) 的俗稱, 典型的URL 可以有下面
15、形式: /index.html, 它標(biāo)示協(xié)議(http)、主地名() 和文件名(index.html);確定網(wǎng)站HTML 的結(jié)構(gòu).有時(shí)需要使用瀏覽器(我們用Chrome瀏覽器) 的開(kāi)發(fā)人員工具來(lái)檢查網(wǎng)站的HTML 結(jié)構(gòu);通過(guò)網(wǎng)絡(luò)抓取的代碼獲得網(wǎng)絡(luò)結(jié)構(gòu);從眾多信息中挑選出需要的內(nèi)容.24網(wǎng)絡(luò)抓取的步驟25例16.1: 聯(lián)合國(guó)憲章抓取我們將抓取聯(lián)合國(guó)憲章的全部文本, 并存入文件中;使用Python來(lái)抓取, 具有直觀性、易用性和豐富的生態(tài)系統(tǒng), 有BeautifulSoup、requests、urllib、scrapy 等模塊來(lái)協(xié)助這項(xiàng)任務(wù);requests (urllib.request 也類似)
16、 可以用來(lái)訪問(wèn)網(wǎng)站, 以達(dá)到獲取數(shù)據(jù)、發(fā)布數(shù)據(jù)或分析數(shù)據(jù)的目的;BeautifulSoup 可以從網(wǎng)頁(yè)中提取信息, 比如:提取表、列表、段落, 還可以放置篩選器來(lái)從網(wǎng)頁(yè)中提取信息;下載requests 及BeautifulSoup4:pip install requests BeautifulSoup425例16.1: 聯(lián)合國(guó)憲章抓取我們將抓取聯(lián)合國(guó)憲章的全部文26例16.1:聯(lián)合國(guó)憲章抓取打開(kāi)聯(lián)合國(guó)中文網(wǎng)址(URL) : /zh/ , 為聯(lián)合國(guó)主地名, 通過(guò)選擇得到聯(lián)合國(guó)憲章序言部分的頁(yè)面圖16.4 聯(lián)合國(guó)憲章中文網(wǎng)頁(yè)序言部分26例16.1:聯(lián)合國(guó)憲章抓取打開(kāi)聯(lián)合國(guó)中文網(wǎng)址(URL) 27例
17、16.1:聯(lián)合國(guó)憲章抓取這個(gè)網(wǎng)頁(yè)本身并不包括聯(lián)合國(guó)憲章其他章節(jié), 必須依靠點(diǎn)擊相應(yīng)的字符來(lái)達(dá)到所要的章節(jié);利用瀏覽器(這里用的是Chrome 瀏覽器) 的網(wǎng)絡(luò)功能, 依次點(diǎn)中序言、各章、及各個(gè)部分, 發(fā)現(xiàn)各章節(jié)的地址都是聯(lián)合國(guó)主地名加上具體的分支地名組成, 比如第一章的網(wǎng)址:/zh/sections/un-charter/chapter-i/index.html它為聯(lián)合國(guó)主地名 /zh/ 加上 sections/un-charter/chapter-i/index.html 27例16.1:聯(lián)合國(guó)憲章抓取這個(gè)網(wǎng)頁(yè)本身并不包括聯(lián)合國(guó)憲章28例16.1:聯(lián)合國(guó)憲章抓取首先, 載入需要的Python
18、 模塊:from bs4 import BeautifulSoupimport requests然后用requests 獲得聯(lián)合國(guó)憲章首頁(yè)的網(wǎng)頁(yè)信息, 并用Beautiful Soup 來(lái)提取網(wǎng)頁(yè)細(xì)節(jié):page = requests.get(/zh/charter-united-nations/)soup = BeautifulSoup(page.content, html.parser)28例16.1:聯(lián)合國(guó)憲章抓取首先, 載入需要的Python29例16.1:聯(lián)合國(guó)憲章抓取所有關(guān)于憲章的具體內(nèi)容都在類 的子元素中的鏈接元素 中Link=soup.find_all(div, class_=c
19、ontent)0.find_all(a)每個(gè)元素都是提取出來(lái)的HTML 中的全部?jī)?nèi)容, 但我們需要的僅僅是其中的網(wǎng)址, 因此要對(duì)Link 的每個(gè)元素提取網(wǎng)址:UN = /zh/hr=list()for link in Link: hr.append(UN+link.get(href)hr=hr2:22 #只有2到22是有關(guān)的地址29例16.1:聯(lián)合國(guó)憲章抓取所有關(guān)于憲章的具體內(nèi)容都在類30例16.1:聯(lián)合國(guó)憲章抓取由于局部地址有形式./, 因此要把它去掉:for i in range(len(hr): hri=hri.replace(/./, /)通過(guò)網(wǎng)頁(yè)Chrome瀏覽器的Inspect 功
20、能, 發(fā)現(xiàn):所有頁(yè)中內(nèi)容都在元素 的后代元素中;在第一個(gè)包括序言的網(wǎng)址(hr0), 文字內(nèi)容會(huì)在元素“l(fā)i”, “h3”, “h4”, “p” 之中(但“主頁(yè)”二字也出現(xiàn)在“l(fā)i”);在剩下的的19 頁(yè), 文字內(nèi)容會(huì)僅在元素“h3”, “h4”, “p” 之中.30例16.1:聯(lián)合國(guó)憲章抓取由于局部地址有形式./, 因31例16.1:聯(lián)合國(guó)憲章抓取比如, 對(duì)于第1頁(yè)(hr0), 使用下面程序可打印出網(wǎng)頁(yè)內(nèi)容:r = requests.get(hr0)sp = BeautifulSoup(r.content, html.parser)s_div=sp.find_all(section, clas
21、s_=col-sm-9)0s_p=s_div.find_all(li, h3, p)打印其他頁(yè)需修改:s_p=s_div.find_all(h3, p)31例16.1:聯(lián)合國(guó)憲章抓取比如, 對(duì)于第1頁(yè)(hr032例16.1:聯(lián)合國(guó)憲章抓取匯總起來(lái), 所有網(wǎng)頁(yè)的抓取和存儲(chǔ)代碼為:with open(UNCharter.txt, w) as text_file:for k in range(len(hr):r = requests.get(hrk)sp = BeautifulSoup(r.content, html.parser)s_div=sp.find_all(section,class_=c
22、ol-sm-9)0if k=0:s_p=s_div.find_all(h3,li,h4,p)else:s_p=s_div.find_all(h3,h4,p)for i in s_p:i=i.stringsif k=0:i=.join(i).strip(主頁(yè))else:i=.join(i)print(i, file=text_file)這樣, 全部聯(lián)合國(guó)憲章內(nèi)容都以文本形式存入文件UNCharter.txt 之中.32例16.1:聯(lián)合國(guó)憲章抓取匯總起來(lái), 所有網(wǎng)頁(yè)的抓取和存33例16.1:聯(lián)合國(guó)憲章抓取使用R軟件, 程序包為rvest;第一步:獲取網(wǎng)址的代碼:library(rvest)pref
23、ace=/zh/sections/un-charter/preamble/index.htmlhttr_web - read_html(preface,encoding = utf-8)第二步:下載rvest 所需要的工具軟件SelectorGadget;第三步:在打開(kāi)聯(lián)合國(guó)憲章網(wǎng)頁(yè)之后, 點(diǎn)擊工具圖標(biāo), 選中所需要的內(nèi)容, 選中的內(nèi)容會(huì)變色, 在右下面會(huì)有某些代碼出現(xiàn), 這里是“.region-content”33例16.1:聯(lián)合國(guó)憲章抓取使用R軟件, 程序包為rves34例16.1:聯(lián)合國(guó)憲章抓取復(fù)制該代碼粘貼在函數(shù)html_node 中, 并得到序言頁(yè)的文字:res=html_node(
24、.region-content)res=html_text(res)最后, 把這個(gè)字符串轉(zhuǎn)換為文本, 并存入文件.圖16.5 用SelectorGadget 獲取CSS 代碼圖34例16.1:聯(lián)合國(guó)憲章抓取復(fù)制該代碼粘貼在函數(shù)html_35例16.1:聯(lián)合國(guó)憲章抓取完整的代碼:library(rvest)library(tidyverse)preface=/zh/sections/un-charter/preamble/index.html #序言頁(yè)網(wǎng)址ch=paste0(/zh/sections/un-charter/chapter-,tolower(as.roman(1:19),/inde
25、x.html)#其他頁(yè),下一行糾正不規(guī)范的第17頁(yè)ch17=/zh/sections/un-charter/chapter-xvii-0/index.htmlch=c(preface,ch) #合并成20個(gè)元素的網(wǎng)址向量Res=聯(lián)合國(guó)憲章n序言n #標(biāo)題及換行標(biāo)記nfor (url in ch)h=read_html(url) #循環(huán)讀入網(wǎng)址reps %html_node(.region-content) % #放入抓取的CSS代碼html_text() #提取出文本; 結(jié)果的reps是字符串reps=str_sub(reps,1,nchar(reps)-24) #去掉后面的不相關(guān)字符Res=
26、paste0(Res,n,reps) #把各個(gè)頁(yè)的結(jié)果放到一起成為一個(gè)字符串cat(as.character(Res), sep = “n”, file = “UNR.txt”, append = TRUE)#保存35例16.1:聯(lián)合國(guó)憲章抓取完整的代碼:36四 網(wǎng)絡(luò)爬蟲(chóng)的若干案例36四 網(wǎng)絡(luò)爬蟲(chóng)的若干案例37例16.4.2:馬克思恩格斯全集文章抓取使用Python, 文章的HTML 格式是表格形式, 不使用BeautifulSoup, 而使用另一個(gè)模塊lxml:import requestsimport lxml.html as lhpage = requests.get(/chinese/
27、marx-engels/01/011.htm)doc = lh.fromstring(page.content) #存入網(wǎng)絡(luò)內(nèi)容tr_ele = doc.xpath(/tr) #分析存在HTML元素的數(shù)據(jù)text_file = open(Karl_Marx.txt, w)text_file.write(tr_ele0.text_content().replace(u30fb,)#把字符tr_ele0包括格式存入文件.text_file.close()37例16.4.2:馬克思恩格斯全集文章抓取使用Python38例16.4.2:馬克思恩格斯全集文章抓取使用R, 還是用程序包rvest 及Sel
28、ectorGadget:library(rvest)library(tidyverse)library(stringr)url=/chinese/marx-engels/01/011.htmh=read_html(url)reps %html_node(td) %html_text()cat(as.character(reps), sep = n, file = Karl.txt, append = TRUE)38例16.4.2:馬克思恩格斯全集文章抓取使用R, 還是用39例16.4.5:抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái)” 兒童失蹤信息首先載入可能使用的模塊:import requ
29、estsfrom lxml import etree微博爬取信息, 首先需要自己微博賬號(hào)的cookie, cookie 的獲得方式為: 在 中登入自己的微博賬號(hào), 右鍵點(diǎn)擊“檢查”, “Network” 中“Name” 列表下選擇“”, 點(diǎn)擊右側(cè)“Headers”, 其中“Request Headers” 下, “Cookie”后的值即為我們要找的cookie 值.39例16.4.5:抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)40例16.4.5:抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái)” 兒童失蹤信息得到cookie 后, 入該cookie 值(input 代碼), 由于該微博有多頁(yè), 爬取多
30、頁(yè)的網(wǎng)站內(nèi)容代碼如下.若爬取頁(yè)碼較多, 為防止IP 被封, 可以使用代理IP, 本文示例爬取前3 頁(yè):mycookie = input(input your cookie:)cookie = Cookie: mycookieurl = /u/5918987931?page=headers = User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0,40例16.4.5:抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)布41例16.4.5: 抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái)
31、” 兒童失蹤信息with open (child.txt,w) as text_file:for i in range(1,4):if i = 1:html = url + str(1)result = requests.get(html,cookies = cookie,headers=headers)selector = etree.HTML(result.content)contents = selector.xpath(/divclass = c)else:i = str(i)result = requests.get(html,cookies = cookie,headers=hea
32、ders)selector = etree.HTML(result.content)content = selector.xpath(/divclass = c)contents = contents + contenti = 0for content in contents1:if content.xpath(./text()0 = 設(shè)置: or content.xpath(./text()0 = 彩版|:continueelse:i = i + 1news = content.xpath(./div1/spanclass=ctt/text()0.replace(u200b,).replace(xa0,).replace(u202d,).replace(u202c,)print(i,news,file=text_file)41例16.4.5: 抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)42圖16.6 cookie的獲取方式例16.4.5:抓取微博賬號(hào)“公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái)” 兒童失蹤信息42圖16.6 cookie的獲取方式例16.4.5:抓取43五 表格數(shù)據(jù)爬取43五 表格數(shù)據(jù)爬取44例16.5.1: 財(cái)富雜志排行榜對(duì)于表格數(shù)據(jù)的批量獲取, 有很多方便的軟件, 如excel中可以快速導(dǎo)出網(wǎng)頁(yè)中的表格數(shù)據(jù), 又如商業(yè)軟件八爪魚(yú)13等, 獲取數(shù)據(jù)效率也非常高, 這里僅用非
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工企業(yè)安全生產(chǎn)應(yīng)急預(yù)案
- 旅游景區(qū)綜合治理民調(diào)方案
- 2024-2030年中國(guó)腐乳行業(yè)競(jìng)爭(zhēng)趨勢(shì)及投資潛力研究報(bào)告
- 2024-2030年中國(guó)罐式集裝箱行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 2024-2030年中國(guó)納米鋁粉行業(yè)發(fā)展現(xiàn)狀投資規(guī)劃分析報(bào)告
- 2024-2030年中國(guó)粉類行業(yè)營(yíng)銷模式及未來(lái)5發(fā)展趨勢(shì)報(bào)告
- 2024-2030年中國(guó)離心式煤氣鼓風(fēng)機(jī)行業(yè)發(fā)展?fàn)顩r規(guī)劃分析報(bào)告
- 家庭硬筆書(shū)法親子互動(dòng)方案
- 2024-2030年中國(guó)砼酸磚產(chǎn)業(yè)未來(lái)發(fā)展趨勢(shì)及投資策略分析報(bào)告
- 2024-2030年中國(guó)矽鋼片行業(yè)發(fā)展?fàn)顩r及投資規(guī)模分析報(bào)告版
- 醫(yī)院重點(diǎn)崗位工作人員輪崗制度
- 2023光伏發(fā)電工程項(xiàng)目安全文明施工方案
- 帶式輸送機(jī)膠帶安裝
- 陳育民對(duì)FLAC3D常見(jiàn)問(wèn)題的解答概要
- 專利文獻(xiàn)檢索方法與步驟課件
- 第5講-申論大作文課件
- 大咯血的護(hù)理及急救課件
- 讀《學(xué)生的精神》有感
- Module 5 Museums模塊測(cè)試題二(含答案)(外研版九年級(jí)上冊(cè))
- 張家爺爺?shù)男』ü?
- 怎樣通知最快(課件)五年級(jí)下冊(cè)數(shù)學(xué)人教版
評(píng)論
0/150
提交評(píng)論