一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲入門python(包括開發(fā)環(huán)境搭建和pycharm激活)

基本任務(wù):

I 搭建python開發(fā)環(huán)境

II 寫一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲罕邀,在某一個(gè)網(wǎng)站將一部小說(shuō)各章節(jié)(一般是一個(gè)章節(jié)一個(gè)網(wǎng)頁(yè))粘貼到一個(gè)文本文件內(nèi)夏伊。

1 首先了解幾個(gè)概念

1.1 網(wǎng)絡(luò)爬蟲

網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁(yè)的程序,它為搜索引擎從萬(wàn)維網(wǎng)上下載網(wǎng)頁(yè)敛瓷,是搜索引擎的重要組成颜懊。

網(wǎng)絡(luò)爬蟲可以模擬瀏覽器瀏覽網(wǎng)頁(yè),自動(dòng)批量下載網(wǎng)絡(luò)資源(能夠訪問(wèn)到的避诽,放在網(wǎng)絡(luò)服務(wù)器的文件)龟虎。

傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁(yè)的URL開始,獲得初始網(wǎng)頁(yè)上的URL沙庐,在抓取網(wǎng)頁(yè)的過(guò)程中鲤妥,不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲的工作流程較為復(fù)雜拱雏,需要根據(jù)一定的網(wǎng)頁(yè)分析算法過(guò)濾與主題無(wú)關(guān)的鏈接棉安,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后铸抑,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁(yè)URL贡耽,并重復(fù)上述過(guò)程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止鹊汛。另外蒲赂,所有被爬蟲抓取的網(wǎng)頁(yè)將會(huì)被系統(tǒng)存貯,進(jìn)行一定的分析刁憋、過(guò)濾滥嘴,并建立索引,以便之后的查詢和檢索至耻;對(duì)于聚焦爬蟲來(lái)說(shuō)若皱,這一過(guò)程所得到的分析結(jié)果還可能對(duì)以后的抓取過(guò)程給出反饋和指導(dǎo)。

在這里還是要推薦下我自己建的Python開發(fā)學(xué)習(xí)群:483546416尘颓,群里都是學(xué)Python開發(fā)的走触,如果你正在學(xué)習(xí)Python ,小編歡迎你加入疤苹,大家都是軟件開發(fā)黨互广,不定期分享干貨(只有Python軟件開發(fā)相關(guān)的),包括我自己整理的一份2018最新的Python進(jìn)階資料和高級(jí)開發(fā)教程痰催,歡迎進(jìn)階中和進(jìn)想深入Python的小伙伴

1.2 小說(shuō)網(wǎng)站的基本結(jié)構(gòu)

首頁(yè)(總目錄)→分類→小說(shuō)目錄頁(yè)→小說(shuō)各章節(jié)兜辞;

1.3 與網(wǎng)站的交互

通常都是用戶通過(guò)瀏覽器(當(dāng)IE)訪問(wèn)網(wǎng)站(網(wǎng)絡(luò)上的服務(wù)器)。

瀏覽器:網(wǎng)址(href)夸溶、請(qǐng)求(requests)→網(wǎng)站服務(wù)器:響應(yīng)(response)給瀏覽器→瀏覽器:緩存并呈現(xiàn)回復(fù)的內(nèi)容逸吵。

1.4 開發(fā)環(huán)境

用高級(jí)語(yǔ)言寫的代碼需要解釋或編碼到機(jī)器代碼,才能被計(jì)算機(jī)執(zhí)行缝裁。

所以開發(fā)一個(gè)程序扫皱,最基本的需求是一個(gè)文本編輯器(寫)和解釋器或編譯器足绅。

開發(fā)復(fù)雜的程序,需要調(diào)試查錯(cuò)韩脑、需要引入第三方庫(kù)氢妈,需要邊結(jié)各文件,所以段多,一般來(lái)說(shuō)首量,一個(gè)簡(jiǎn)單的文本編輯器加一個(gè)解釋器或編譯器是不夠的,需要一個(gè)支持某種高級(jí)語(yǔ)言的調(diào)試器的較復(fù)雜的編輯器进苍。這樣的編輯器同時(shí)還支持可以方便寫代碼(如顏色分類顯示加缘、代碼提示)的插件加入。

2 搭建python開發(fā)環(huán)境

2.1 下載和安裝解釋器python3.6

2.1.1 python解釋器下載地址:https://www.python.org/downloads/release/python-365/

2.1.2 關(guān)于環(huán)境變量path觉啊,就是可以保證執(zhí)行python命令時(shí)拣宏,不需要輸入安裝路徑。在安裝時(shí)如果有直接勾選了"add python to path"則在安裝時(shí)即自動(dòng)配置了path的安裝路徑杠人;

path變量中有了安裝路徑后勋乾,即可直接在CMD中輸入python,可以看到相關(guān)反饋相信嗡善,即表示安裝和環(huán)境變量配置OK了辑莫;

如果不安裝代碼編輯器或?qū)S肐DE,也可以在CMD中輸入python,進(jìn)行交互式開發(fā)滤奈;

2.2 下載和安裝代碼編輯器加調(diào)試器:pycharm4

PyCharm 由著名的JetBrains公司開發(fā)摆昧,帶有一整套可以幫助用戶在使用Python語(yǔ)言開發(fā)時(shí)提高其效率的工 具撩满,比如調(diào)試蜒程、語(yǔ)法高亮、Project管理伺帘、代碼跳轉(zhuǎn)昭躺、智能提示、自動(dòng)完成伪嫁、單元測(cè)試领炫、版本控制。此外张咳,該IDE提供了一些高級(jí)功能帝洪,以用于支持Django框架下的專業(yè)Web開發(fā)。

2.2.1 代碼編輯器pycharm下載地址http://www.jetbrains.com/pycharm/download/#section=windows

2.2.2進(jìn)入激活界面脚猾,選擇第二個(gè)License server葱峡,之后在License server address中隨意輸入下面兩個(gè)注冊(cè)碼中的任意一個(gè)即可,http://idea.liyang.io或http://xidea.online龙助。

激活后的狀態(tài):

3 添加第三方模塊

第三方模塊添加工具pip必須在安裝python3.5時(shí)有勾選安裝砰奕。

編輯或新建C:Userswwuhnwu01pippip.ini:

[global]

respect-virtualenv = true

download-cache = f:/Python/pip/cache

log-file = f:/Python/pip/pip.log

[install]

timeout = 30

find-links = http://pypi.douban.com

find-links = http://pypi.douban.com/simple

pycharm→文件→setting→project interpreter→pip→右邊加號(hào)+→manage repositories→右邊加號(hào)+→添加第三方模塊的鏡像服務(wù)器http://pypi.douban.com/和http://pypi.douban.com/simple

如果還是連接不上第三方模塊服務(wù)器,有時(shí)需要重啟一下pycharm。

4 一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲

3.1 新建項(xiàng)目

3.2 設(shè)置項(xiàng)目編譯器

基本的思路:

進(jìn)入一個(gè)小說(shuō)的目錄頁(yè)军援,請(qǐng)求到目錄(包括各章節(jié)的href和章節(jié)標(biāo)題)的內(nèi)容仅淑,提取到全部的href,再通過(guò)各href請(qǐng)求到各網(wǎng)頁(yè)的內(nèi)容胸哥,經(jīng)過(guò)數(shù)據(jù)清洗和適當(dāng)?shù)幕氐窖木梗瑢懭氲揭粋€(gè)文本文件

代碼:

以上代碼運(yùn)行后,即可把整部小說(shuō)的內(nèi)容寫入文本文件空厌。

不同的網(wǎng)站昆禽,內(nèi)面內(nèi)容的寫法會(huì)有差別,在提取數(shù)據(jù)和清洗數(shù)據(jù)時(shí)要做相應(yīng)調(diào)整變化蝇庭。

一些網(wǎng)站會(huì)禁止爬蟲醉鳖,當(dāng)你嘗試爬取網(wǎng)站資源時(shí),一些網(wǎng)站會(huì)有反爬策略哮内,將你的IP加入黑名單盗棵,當(dāng)你爬取或訪問(wèn)時(shí),頁(yè)面會(huì)響應(yīng)為:“HTTP Error 403: Forbidden錯(cuò)誤”北发。

附源代碼:

import requests

import re

# 1 獲取小說(shuō)目錄頁(yè)

url = 'http://www.xiaoshuotxt.org/wuxia/1617/'

response = requests.get(url)

response.encoding = 'utf-8'

html = response.text

title = re.findall(r'

# 4 數(shù)據(jù)持久化,寫入txt)

fb = open('%s.txt'%title, 'w', encoding='utf-8');

# 2 提取章節(jié)

menu = re.findall(r'正文(.*?)',html)[0]

chapter_info_list = re.findall(r'(.*?)',menu)

# 3 循環(huán)訪問(wèn)章節(jié)纹因,并獲取內(nèi)容

for chapter_info in chapter_info_list:

chapter_url = chapter_info[0]

chapter_title = chapter_info[1]

if 'http' not in chapter_url:

chapter_url = 'http://www.xiaoshuotxt.org%s' % chapter_url

chapter_response = requests.get(chapter_url)

chapter_response.encoding = 'utf-8'

chapter_html = chapter_response.text

# 數(shù)據(jù)提取

chapter_content = re.findall(r'

(.*?)
',chapter_html)

# 數(shù)據(jù)清洗(按頁(yè)面規(guī)律)

chapter_content = chapter_content.replace(' ','')

chapter_content = chapter_content.replace('


','')

# 數(shù)據(jù)持久化(寫入txt),先要在前面新建文件

fb.write(chapter_title)

fb.write(' ')

fb.write(chapter_content)

fb.write(' ')

#用以下語(yǔ)句可以看到動(dòng)態(tài)過(guò)程

print(chapter_url)

-End-

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市琳拨,隨后出現(xiàn)的幾起案子瞭恰,更是在濱河造成了極大的恐慌,老刑警劉巖狱庇,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惊畏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡密任,警方通過(guò)查閱死者的電腦和手機(jī)颜启,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浪讳,“玉大人缰盏,你說(shuō)我怎么就攤上這事⊙妥瘢” “怎么了口猜?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)透揣。 經(jīng)常有香客問(wèn)我济炎,道長(zhǎng),這世上最難降的妖魔是什么淌实? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任冻辩,我火速辦了婚禮猖腕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恨闪。我一直安慰自己倘感,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布咙咽。 她就那樣靜靜地躺著老玛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钧敞。 梳的紋絲不亂的頭發(fā)上蜡豹,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音溉苛,去河邊找鬼镜廉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛愚战,可吹牛的內(nèi)容都是我干的娇唯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼寂玲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼塔插!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起拓哟,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤想许,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后断序,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體流纹,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年逢倍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捧颅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡较雕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挚币,到底是詐尸還是另有隱情亮蒋,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布妆毕,位于F島的核電站慎玖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笛粘。R本人自食惡果不足惜趁怔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一湿硝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧润努,春花似錦关斜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鳍侣,卻和暖如春丁稀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倚聚。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工线衫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惑折。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓桶雀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親唬复。 傳聞我的和親對(duì)象是個(gè)殘疾皇子矗积,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)敞咧,斷路器棘捣,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • Python開發(fā)簡(jiǎn)單爬蟲(Python2.X版本,Eclipse工具) 一休建、爬蟲介紹 爬蟲調(diào)度端:?jiǎn)?dòng)乍恐、停止爬蟲,...
    凜0_0閱讀 2,133評(píng)論 2 10
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評(píng)論 25 707
  • “我躲在十丈遠(yuǎn)的站臺(tái)外,目送你離開砌些∥赝叮” 我輸了,一敗涂地存璃,但你也沒贏仑荐。 有人愛情說(shuō)如同兩個(gè)人拉橡皮筋, 疼的一定是...
    歪叔留小白閱讀 425評(píng)論 0 1
  • 時(shí)間過(guò)得好快纵东,轉(zhuǎn)眼間一個(gè)月過(guò)去了粘招,來(lái)高密市人民醫(yī)院進(jìn)修的時(shí)間已經(jīng)過(guò)去了三分之一了,感覺剛到醫(yī)院的一切還歷歷在目偎球,但...
    特么逗我呢閱讀 222評(píng)論 0 0