亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

爬蟲初級(jí)操作(一)

Ocean / 2582人閱讀

摘要:一個(gè)對(duì)應(yīng)相應(yīng)的狀態(tài)碼,狀態(tài)碼表示協(xié)議所返回的響應(yīng)的狀態(tài)。下面將狀態(tài)碼歸結(jié)如下繼續(xù)客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求。繼續(xù)處理由擴(kuò)展的狀態(tài)碼,代表處理將被繼續(xù)執(zhí)行。處理方式丟棄該狀態(tài)碼不被的應(yīng)用程序直接使用,只是作為類型回應(yīng)的默認(rèn)解釋。

本篇內(nèi)容為 python 網(wǎng)絡(luò)爬蟲初級(jí)操作,內(nèi)容主要有以下 3 部分:

python 關(guān)于爬蟲的一些基本操作和知識(shí)

靜態(tài)網(wǎng)頁(yè)抓取

動(dòng)態(tài)網(wǎng)頁(yè)抓取


基本操作和知識(shí)

通過(guò)下面介紹的網(wǎng)絡(luò)爬蟲的流程,我們可以看到包含的知識(shí)點(diǎn)有哪些:

獲取網(wǎng)頁(yè)——爬取到了整個(gè)頁(yè)面
Rquest, urllib, selenium
多進(jìn)程多線程抓取、登錄抓取、突破IP封禁和服務(wù)器抓取

解析網(wǎng)頁(yè)(提取數(shù)據(jù))——從頁(yè)面中找自己需要的數(shù)據(jù)
Re 正則表達(dá)式,BeautifulSoup 和 lxml
解決中文亂碼

存儲(chǔ)數(shù)據(jù)
存入txt文件和csv文件
存入 MySQL 數(shù)據(jù)庫(kù)和 MongoDB 數(shù)據(jù)庫(kù)

我們先來(lái)看一個(gè)簡(jiǎn)單的爬蟲,代碼及注釋如下:

import requests
from bs4 import BeautifulSoup

link = "http://www.santostang.com/"
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"}    #用request的headers偽裝成瀏覽器訪問(wèn)
r = requests.get(link, headers=headers) # r是requests的Response回復(fù)對(duì)象
#print(r.text)
# 獲取了博客首頁(yè)的HTML代碼

# 把HTML代碼轉(zhuǎn)化為soup對(duì)象
soup = BeautifulSoup(r.text, "lxml")    #使用BeautifulSoup解析這段代碼
title = soup.find("h1", class_="post-title").a.text.strip()
print(title)
# 從整個(gè)網(wǎng)頁(yè)中提取第一篇文章的標(biāo)題

with open("title.txt", "a+") as f:
    f.write(title)
    f.close()

這樣就完成了一次爬蟲,下面我們分為靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)兩部分來(lái)進(jìn)行具體的學(xué)習(xí)。

靜態(tài)網(wǎng)頁(yè)抓取

響應(yīng)狀態(tài)碼

返回200,表示請(qǐng)求成功。
返回4XX,表示客戶端錯(cuò)誤。
返回5XX,表示服務(wù)器錯(cuò)誤響應(yīng)。

一個(gè) HTTPError 對(duì)應(yīng)相應(yīng)的狀態(tài)碼,HTTP 狀態(tài)碼表示 HTTP 協(xié)議所返回的響應(yīng)的狀態(tài)。
下面將狀態(tài)碼歸結(jié)如下:

100:繼續(xù) ?客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求。客戶端應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的剩余部分,或者如果請(qǐng)求已經(jīng)完成,忽略這個(gè)響應(yīng)。
101: 轉(zhuǎn)換協(xié)議 ?在發(fā)送完這個(gè)響應(yīng)最后的空行后,服務(wù)器將會(huì)切換到在Upgrade 消息頭中定義的那些協(xié)議。只有在切換新的協(xié)議更有好處的時(shí)候才應(yīng)該采取類似措施。
102:繼續(xù)處理 ? 由WebDAV(RFC 2518)擴(kuò)展的狀態(tài)碼,代表處理將被繼續(xù)執(zhí)行。
200:請(qǐng)求成功 ? ? ?處理方式:獲得響應(yīng)的內(nèi)容,進(jìn)行處理
201:請(qǐng)求完成,結(jié)果是創(chuàng)建了新資源。新創(chuàng)建資源的URI可在響應(yīng)的實(shí)體中得到 ? ?處理方式:爬蟲中不會(huì)遇到
202:請(qǐng)求被接受,但處理尚未完成 ? ?處理方式:阻塞等待
204:服務(wù)器端已經(jīng)實(shí)現(xiàn)了請(qǐng)求,但是沒(méi)有返回新的信 息。如果客戶是用戶代理,則無(wú)須為此更新自身的文檔視圖。 ? ?處理方式:丟棄
300:該狀態(tài)碼不被HTTP/1.0的應(yīng)用程序直接使用, 只是作為3XX類型回應(yīng)的默認(rèn)解釋。存在多個(gè)可用的被請(qǐng)求資源。?? ?處理方式:若程序中能夠處理,則進(jìn)行進(jìn)一步處理,如果程序中不能處理,則丟棄
301:請(qǐng)求到的資源都會(huì)分配一個(gè)永久的URL,這樣就可以在將來(lái)通過(guò)該URL來(lái)訪問(wèn)此資源?? ?處理方式:重定向到分配的URL
302:請(qǐng)求到的資源在一個(gè)不同的URL處臨時(shí)保存 ?? ?處理方式:重定向到臨時(shí)的URL
304:請(qǐng)求的資源未更新 ?? ?處理方式:丟棄
400:非法請(qǐng)求 ?? ?處理方式:丟棄
401:未授權(quán) ?? ?處理方式:丟棄
403:禁止 ?? ?處理方式:丟棄
404:沒(méi)有找到 ?? ?處理方式:丟棄
500:服務(wù)器內(nèi)部錯(cuò)誤 ?服務(wù)器遇到了一個(gè)未曾預(yù)料的狀況,導(dǎo)致了它無(wú)法完成對(duì)請(qǐng)求的處理。一般來(lái)說(shuō),這個(gè)問(wèn)題都會(huì)在服務(wù)器端的源代碼出現(xiàn)錯(cuò)誤時(shí)出現(xiàn)。
501:服務(wù)器無(wú)法識(shí)別 ?服務(wù)器不支持當(dāng)前請(qǐng)求所需要的某個(gè)功能。當(dāng)服務(wù)器無(wú)法識(shí)別請(qǐng)求的方法,并且無(wú)法支持其對(duì)任何資源的請(qǐng)求。
502:錯(cuò)誤網(wǎng)關(guān) ?作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí),從上游服務(wù)器接收到無(wú)效的響應(yīng)。
503:服務(wù)出錯(cuò) ? 由于臨時(shí)的服務(wù)器維護(hù)或者過(guò)載,服務(wù)器當(dāng)前無(wú)法處理請(qǐng)求。這個(gè)狀況是臨時(shí)的,并且將在一段時(shí)間以后恢復(fù)。

HTTPError 實(shí)例產(chǎn)生后會(huì)有一個(gè) code 屬性,這就是是服務(wù)器發(fā)送的相關(guān)錯(cuò)誤號(hào)。
3 開頭的代號(hào)可以被處理,并且 100-299 范圍的號(hào)碼指示成功,所以你只能看到 400-599 的錯(cuò)誤號(hào)碼。

HTTPError 的父類是 URLError,根據(jù)編程經(jīng)驗(yàn),父類的異常應(yīng)當(dāng)寫到子類異常的后面,如果子類捕獲不到,那么可以捕獲父類的異常。

傳遞URL參數(shù):
為了請(qǐng)求特定的數(shù)據(jù),在URL的查詢字符串中加入某些數(shù)據(jù)。如果是自己構(gòu)建 URL 數(shù)據(jù)一般會(huì)跟在一個(gè)問(wèn)號(hào)后面,以鍵/值的形式放在URL中。

在Request 中,可以直接把這些參數(shù)保存在字典中,用 params 構(gòu)建至URL中。

舉例如下:
key_dict={"key1":"value1","key2":"value2"}
r=requests.get("http://httpbin.org/get",params=key_dict)

運(yùn)行,得到結(jié)果:URL 已正確編碼為http://httpbin.org/get?key1=v...

定制請(qǐng)求頭:
請(qǐng)求頭 Headers 提供了關(guān)于請(qǐng)求、響應(yīng)或其他發(fā)送實(shí)體的信息。如果沒(méi)有指定請(qǐng)求頭 或請(qǐng)求的請(qǐng)求頭和實(shí)際網(wǎng)頁(yè)不一致,就可能無(wú)法返回正確的結(jié)果。

Requests 并不會(huì)基于定制的請(qǐng)求 頭Headers 的具體情況改變自己的行為,只是在最后的請(qǐng)求中,所有的請(qǐng)求頭信息都會(huì)被傳遞進(jìn)去。

發(fā)送POST請(qǐng)求:
除發(fā)送GET請(qǐng)求外,有時(shí)發(fā)送一些編碼為表單形式的數(shù)據(jù)(如在登錄的時(shí)候請(qǐng)求就為POST)
——如果用GET請(qǐng)求,密碼就會(huì)顯示在URL中,不安全
——如果要實(shí)現(xiàn)POST請(qǐng)求,只需要傳遞一個(gè)字典給 Requests中的 data參數(shù),這個(gè)數(shù)據(jù)字典就會(huì)在發(fā)出請(qǐng)求時(shí)自動(dòng)編碼為表單形式。

超時(shí):
用 Requests 在 timeout 參數(shù)設(shè)定的秒數(shù)結(jié)束之后停止等待響應(yīng)。一般把這個(gè)值設(shè)置為 20 秒。

相應(yīng)代碼如下:

import requests

#傳遞URL參數(shù)
r = requests.get("http://www.santostang.com/")
#返回一個(gè)名為 r 的 response對(duì)象

print("文本編碼:", r.encoding)
print("響應(yīng)狀態(tài)碼:", r.status_code)
print("字符串方式的響應(yīng)體:", r.text)


key_dict = {"key1": "value1", "key2": "value2"}
r = requests.get("http://httpbin.org/get", params=key_dict)
print("URL 已正確編碼:", r.url)
print("字符串方式的響應(yīng)體:
", r.text)


#定制請(qǐng)求頭
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
"Host":"www.santostang.com"
}

r = requests.get("http://www.santostang.com", headers=headers)
print("響應(yīng)狀態(tài)碼:", r.status_code)



key_dict = {"key1": "value1", "key2": "value2"}
r = requests.post("http://httpbin.org/post", data=key_dict)
print(r.text)
#from變量的值為key_dict輸入的值,一個(gè)POST請(qǐng)求發(fā)送成功

link = "http://www.santostang.com/"
r = requests.get(link, timeout=0.01)
#異常:時(shí)間限制0.01秒內(nèi),連接到地址為www.santostang.com的時(shí)間已到。
動(dòng)態(tài)網(wǎng)頁(yè)抓取

在使用 JavaScript 時(shí),很多內(nèi)容并不會(huì)出現(xiàn)在 HTML 源代碼中,爬取靜態(tài)網(wǎng)頁(yè)的技術(shù)可能無(wú)法正常使用。用到以下兩種技術(shù):

通過(guò)瀏覽器審查元素解析真實(shí)網(wǎng)頁(yè)地址

使用selenium模擬瀏覽器的方法

異步更新技術(shù)——AJAX(Asynchronous JavaScript And XML):
通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量的數(shù)據(jù)交換就可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。即 可以在不重新加載網(wǎng)頁(yè)的情況下對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。

有時(shí)候我們?cè)谟胷equests抓取頁(yè)面的時(shí)候,得到的結(jié)果可能和在瀏覽器中看到的不一樣:在瀏覽器中可以看到正常顯示的頁(yè)面數(shù)據(jù),但是使用requests得到的結(jié)果并沒(méi)有。

這是因?yàn)閞equests獲取的都是原始的HTML文檔,而瀏覽器中的頁(yè)面則是經(jīng)過(guò)JavaScript處理數(shù)據(jù)后生成的結(jié)果,這些數(shù)據(jù)的來(lái)源有多種:

通過(guò) Ajax 加載的,可能是包含在 HTML 文檔中的
數(shù)據(jù)加載是一種異步加載方式,原始的頁(yè)面最初不會(huì)包含某些數(shù)據(jù),原始頁(yè)面加載完后,會(huì)再向服務(wù)器請(qǐng)求某個(gè)接口獲取數(shù)據(jù),然后數(shù)據(jù)才被處理從而呈現(xiàn)到網(wǎng)頁(yè)上,這其實(shí)就是發(fā)送了一個(gè) Ajax 請(qǐng)求。

如果遇到這樣的頁(yè)面,直接利用 requests 等庫(kù)來(lái)抓取原始頁(yè)面,是無(wú)法獲取到有效數(shù)據(jù)的,這時(shí)需要分析網(wǎng)頁(yè)后臺(tái)向接口發(fā)送的 Ajax 請(qǐng)求,如果可以用 requests 來(lái)模擬 Ajax 請(qǐng)求,那么就可以成功抓取了。

經(jīng)過(guò)JavaScript和特定算法計(jì)算后生成的。

數(shù)據(jù)傳送分為 POST 和 GET 兩種方式:
最重要的區(qū)別是 GET 方式是直接以鏈接形式訪問(wèn),鏈接中包含了所有的參數(shù),當(dāng)然如果包含了密碼的話是一種不安全的選擇,不過(guò)你可以直觀地看到自己提交了什么內(nèi)容。

POST則不會(huì)在網(wǎng)址上顯示所有的參數(shù),不過(guò)如果你想直接查看提交了什么就不太方便了。

通過(guò) selenium 模擬瀏覽器抓取
對(duì)于那些很難找到真實(shí)地址的 URL 或者很冗長(zhǎng)的,使用瀏覽器渲染引擎:直接用瀏覽器在顯示網(wǎng)頁(yè)時(shí)解析HTML、應(yīng)用CSS樣式、執(zhí)行JavaScript的語(yǔ)句。

在爬蟲過(guò)程中,會(huì)打開一個(gè)瀏覽器加載該網(wǎng)頁(yè),自動(dòng)操作瀏覽器瀏覽各個(gè)網(wǎng)頁(yè),順便把數(shù)據(jù)抓下來(lái)。

用 Selenium 控制瀏覽器加載的內(nèi)容,從而加快 Selenium 的爬取速度:

控制 CSS 的加載

控制圖片文件的顯示

控制JavaScript的運(yùn)行

學(xué)習(xí)完動(dòng)態(tài)網(wǎng)頁(yè)加載后,我們來(lái)看一個(gè)使用 Ajax 加載評(píng)論的網(wǎng)頁(yè),如何爬取到評(píng)論,代碼如下:

import json
import requests

def single_page_comment(link):
#link = "https://api-zero.livere.com/v1/comments/list?callback=jQuery1124030126086598094437_1529672300768&limit=10&repSeq=3871836&requestPath=%2Fv1%2Fcomments%2Flist&consumerSeq=1020&livereSeq=28583&smartloginSeq=5154&_=1529672300770"
    headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"}
    r = requests.get(link, headers=headers)
    #它是json數(shù)據(jù)
    #print(r.text)

    json_string = r.text
    json_string = json_string[json_string.find("{"):-2]     #僅僅提取字符串中符合json格式的部分

    #使用 json.loads 把字符串格式的響應(yīng)體數(shù)據(jù)轉(zhuǎn)化為json數(shù)據(jù)
    json_data = json.loads(json_string)
    #利用 json 數(shù)據(jù)的結(jié)構(gòu),提取到評(píng)論的列表comment_list
    comment_list = json_data["results"]["parents"]

    for eachone in comment_list:
        message = eachone["content"]
        print(message)



# 截止測(cè)試時(shí)共69條評(píng)論
for page in range(1,7):
    link1 = "https://api-zero.livere.com/v1/comments/list?callback=jQuery1124030126086598094437_1529672300768&limit=10&offset="
    link2 = "&repSeq=3871836&requestPath=%2Fv1%2Fcomments%2Flist&consumerSeq=1020&livereSeq=28583&smartloginSeq=5154&_=1529672300773"
    page_str = str(page)
    link = link1 + page_str + link2
    print(link)
    single_page_comment(link)

最后我們看一個(gè)豆瓣電影 TOP250 的代碼(源代碼可至文末下載):

import requests
from bs4 import BeautifulSoup

def get_movies():
    headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
        "Host": "movie.douban.com"
    }
    for i in range(0, 10):
        link = "https://movie.douban.com/top250?start=" + str(i * 25)
        r = requests.get(link, headers=headers, timeout=10)
        print(str(i+1), "頁(yè)響應(yīng)狀態(tài)碼:", r.status_code)
        print(r.text)

# 得到網(wǎng)頁(yè)的HTML代碼
# get_movies()


movie_list = []
def get_movies():
    headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
            "Host": "movie.douban.com"
        }


    for i in range(0, 10):
        link = "https://movie.douban.com/top250?start=" + str(i * 25)
        r = requests.get(link, headers=headers, timeout=10)
        print(str(i+1), "頁(yè)響應(yīng)狀態(tài)碼:", r.status_code)

        soup = BeautifulSoup(r.text, "lxml")
        div_list = soup.find_all("div", class_="hd")
        for each in div_list:
            movie = each.a.span.text.strip()
            movie_list.append(movie)

    return movie_list

movies = get_movies()
print(movie_list)


得到結(jié)果:

["肖申克的救贖", "霸王別姬", "這個(gè)殺手不太冷", "阿甘正傳", "美麗人生", "千與千尋", "泰坦尼克號(hào)", "辛德勒的名單", "盜夢(mèng)空間", "機(jī)器人總動(dòng)員", 
"三傻大鬧寶萊塢", "海上鋼琴師", "忠犬八公的故事", "放牛班的春天", "大話西游之大圣娶親", "楚門的世界", "龍貓", "教父", "星際穿越", "熔爐", 
"觸不可及", "亂世佳人", "無(wú)間道", "當(dāng)幸福來(lái)敲門", "天堂電影院", "怦然心動(dòng)", "十二怒漢", "少年派的奇幻漂流", "蝙蝠俠:黑暗騎士", "鬼子來(lái)了", 
"搏擊俱樂(lè)部", "活著", "指環(huán)王3:王者無(wú)敵", "瘋狂動(dòng)物城", "天空之城", "大話西游之月光寶盒", "羅馬假日", "飛屋環(huán)游記", "控方證人", "竊聽風(fēng)暴", 
"兩桿大煙槍", "飛越瘋?cè)嗽?, "聞香識(shí)女人", "哈爾的移動(dòng)城堡", "辯護(hù)人", "海豚灣", "V字仇殺隊(duì)", "死亡詩(shī)社", "教父2", "美麗心靈",
"指環(huán)王2:雙塔奇兵", "指環(huán)王1:魔戒再現(xiàn)", "飲食男女", "情書", "摔跤吧!爸爸", "美國(guó)往事", "獅子王", "鋼琴家", "素媛", "天使愛(ài)美麗", 
"小鞋子", "七宗罪", "被嫌棄的松子的一生", "致命魔術(shù)", "音樂(lè)之聲", "本杰明·巴頓奇事", "勇敢的心", "西西里的美麗傳說(shuō)", "剪刀手愛(ài)德華", "低俗小說(shuō)", 
"看不見的客人", "黑客帝國(guó)", "拯救大兵瑞恩", "沉默的羔羊", "讓子彈飛", "入殮師", "蝴蝶效應(yīng)", "春光乍泄", "大鬧天宮", "瑪麗和馬克思", 
"末代皇帝", "心靈捕手", "陽(yáng)光燦爛的日子", "幽靈公主", "第六感", "重慶森林", "布達(dá)佩斯大飯店", "禁閉島", "哈利·波特與魔法石", "狩獵", 
"大魚", "貓鼠游戲", "致命ID", "斷背山", "射雕英雄傳之東成西就", "甜蜜蜜", "一一", "告白", "陽(yáng)光姐妹淘", "加勒比海盜", 
"穿條紋睡衣的男孩", "上帝之城", "摩登時(shí)代", "阿凡達(dá)", "愛(ài)在黎明破曉前", "消失的愛(ài)人", "風(fēng)之谷", "愛(ài)在日落黃昏時(shí)", "側(cè)耳傾聽", "超脫", 
"紅辣椒", "恐怖直播", "倩女幽魂", "小森林 夏秋篇", "馴龍高手", "菊次郎的夏天", "喜劇之王", "幸福終點(diǎn)站", "螢火蟲之墓", "借東西的小人阿莉埃蒂", 
"七武士", "歲月神偷", "殺人回憶", "神偷奶爸", "電鋸驚魂", "貧民窟的百萬(wàn)富翁", "喜宴", "真愛(ài)至上", "海洋", "諜影重重3", 
"東邪西毒", "記憶碎片", "怪獸電力公司", "雨人", "黑天鵝", "瘋狂原始人", "盧旺達(dá)飯店", "燃情歲月", "英雄本色", "虎口脫險(xiǎn)", 
"小森林 冬春篇", "7號(hào)房的禮物", "哈利·波特與死亡圣器(下)", "傲慢與偏見", "荒蠻故事", "心迷宮", "螢火之森", "戀戀筆記本", "完美的世界", "教父3", 
"縱橫四海", "花樣年華", "海邊的曼徹斯特", "玩具總動(dòng)員3", "猜火車", "魂斷藍(lán)橋", "穿越時(shí)空的少女", "雨中曲", "唐伯虎點(diǎn)秋香", "時(shí)空戀旅人", 
"超能陸戰(zhàn)隊(duì)", "請(qǐng)以你的名字呼喚我", "蝙蝠俠:黑暗騎士崛起", "二十二", "我是山姆", "人工智能", "冰川時(shí)代", "浪潮", "朗讀者", "香水", 
"爆裂鼓手", "羅生門", "未麻的部屋", "一次別離", "追隨", "血戰(zhàn)鋼鋸嶺", "撞車", "可可西里", "恐怖游輪", "戰(zhàn)爭(zhēng)之王", "被解救的姜戈", 
"地球上的星星", "達(dá)拉斯買家俱樂(lè)部", "夢(mèng)之安魂曲", "牯嶺街少年殺人事件", "房間", "頭腦特工隊(duì)", "魔女宅急便", "諜影重重", "諜影重重2", "驚魂記", 
"小蘿莉的猴神大叔", "忠犬八公物語(yǔ)", "青蛇", "再次出發(fā)之紐約遇見你", "阿飛正傳", "模仿游戲", "東京物語(yǔ)", "哪吒鬧海", "碧海藍(lán)天", "一個(gè)叫歐維的男人決定去死", 
"完美陌生人", "你的名字。", "無(wú)人知曉", "末路狂花", "秒速5厘米", "源代碼", "終結(jié)者2:審判日", "黑客帝國(guó)3:矩陣革命", "新龍門客棧", "綠里奇跡", 
"海盜電臺(tái)", "這個(gè)男人來(lái)自地球", "勇闖奪命島", "城市之光", "卡薩布蘭卡", "變臉", "無(wú)恥混蛋", "初戀這件小事", "發(fā)條橙", "E.T. 外星人", 
"黃金三鏢客", "愛(ài)在午夜降臨前", "荒野生存", "美國(guó)麗人", "遷徙的鳥", "英國(guó)病人", "無(wú)敵破壞王", "步履不停", "瘋狂的石頭", "燕尾蝶", 
"非常嫌疑犯", "勇士", "彗星來(lái)的那一夜", "叫我第一名", "國(guó)王的演講", "穆赫蘭道", "血鉆", "聚焦", "海街日記", "上帝也瘋狂", 
"槍火", "我愛(ài)你", "遺愿清單", "大衛(wèi)·戈?duì)柕囊簧?, "黑鷹墜落", "荒島余生", "藍(lán)色大門", "千鈞一發(fā)", "愛(ài)·回家"]

本文為崔慶才博客和唐松的《Python網(wǎng)絡(luò)爬蟲從入門到實(shí)踐》學(xué)習(xí)記錄與總結(jié),具體內(nèi)容可參考二者。博主在學(xué)習(xí)過(guò)程中的練習(xí)代碼也已上傳至 GitHub。

不足之處,歡迎指正。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/41925.html

相關(guān)文章

  • python爬蟲爬取github所有follwers初級(jí)

    摘要:按照同樣的方式扒取所有的自己的用戶。但是為了尊重人家隱私權(quán),好吧,就這樣吧,我也不能做啥。 這幾天我很焦慮,受不了那些先f(wàn)ollow我,等我follow回去后又unfollow的人,因?yàn)槭撬麄兿萬(wàn)ollow我的,我出于人道主義想著互粉一下的,結(jié)果這么對(duì)我,太不厚道了。github又不像微博那樣有互粉標(biāo)志,這真的整得我很心煩,于是想著寫一個(gè)爬蟲,把這些壞人揪出來(lái)~第一步,當(dāng)然是放出代碼啦...

    stormgens 評(píng)論0 收藏0
  • 前端培訓(xùn)-中級(jí)階段(10)- 同源策略(2019-08-15期)

    摘要:同源策略是什么同源策略是瀏覽器的一個(gè)安全功能,不同源的數(shù)據(jù)禁止訪問(wèn)?;蛟S你可以說(shuō)驗(yàn)證,在瀏覽器沒(méi)有同源策略的情況下這些都可以繞過(guò)去??偨Y(jié)同源策略是蠻好的,防御了大部分的攻擊。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門技術(shù)就算入門,但也僅僅是入門,現(xiàn)在前端開發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/CSS/JS),本著提升技術(shù)水平,打牢基礎(chǔ)知識(shí)的中心思...

    heartFollower 評(píng)論0 收藏0
  • 爬蟲初級(jí)操作(二)

    摘要:本篇內(nèi)容為網(wǎng)絡(luò)爬蟲初級(jí)操作的簡(jiǎn)單介紹,內(nèi)容主要有以下部分解析網(wǎng)頁(yè)數(shù)據(jù)庫(kù)解析網(wǎng)頁(yè)一般來(lái)說(shuō),解析網(wǎng)頁(yè)有三種方式正則表達(dá)式。關(guān)于,我們最后再來(lái)看一個(gè)實(shí)戰(zhàn)項(xiàng)目爬取北京二手房?jī)r(jià)格。代碼如下第頁(yè)這樣就成功爬取了安居客上前頁(yè)的北京二手房?jī)r(jià)格。 本篇內(nèi)容為 python 網(wǎng)絡(luò)爬蟲初級(jí)操作的簡(jiǎn)單介紹,內(nèi)容主要有以下 2 部分: 解析網(wǎng)頁(yè) 數(shù)據(jù)庫(kù) 解析網(wǎng)頁(yè) 一般來(lái)說(shuō),解析網(wǎng)頁(yè)有三種方式:正則表達(dá)式、...

    崔曉明 評(píng)論0 收藏0
  • 爬蟲初級(jí)操作(二)

    摘要:本篇內(nèi)容為網(wǎng)絡(luò)爬蟲初級(jí)操作的簡(jiǎn)單介紹,內(nèi)容主要有以下部分解析網(wǎng)頁(yè)數(shù)據(jù)庫(kù)解析網(wǎng)頁(yè)一般來(lái)說(shuō),解析網(wǎng)頁(yè)有三種方式正則表達(dá)式。關(guān)于,我們最后再來(lái)看一個(gè)實(shí)戰(zhàn)項(xiàng)目爬取北京二手房?jī)r(jià)格。代碼如下第頁(yè)這樣就成功爬取了安居客上前頁(yè)的北京二手房?jī)r(jià)格。 本篇內(nèi)容為 python 網(wǎng)絡(luò)爬蟲初級(jí)操作的簡(jiǎn)單介紹,內(nèi)容主要有以下 2 部分: 解析網(wǎng)頁(yè) 數(shù)據(jù)庫(kù) 解析網(wǎng)頁(yè) 一般來(lái)說(shuō),解析網(wǎng)頁(yè)有三種方式:正則表達(dá)式、...

    callmewhy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<