Python之dmzj漫畫搜索爬蟲(一)

Hello,大家好解恰。作為簡書新人避咆,熱愛coding舟肉,于是我們就來寫個爬蟲吧。
動漫之家作為國內(nèi)有名的漫畫網(wǎng)站查库,我個人挺喜歡在上面看動漫的路媚,所以,閑暇之余就寫了這個爬蟲樊销,作為一個實戰(zhàn)整慎,希望學爬蟲的人有個很好的開端。
本代碼使用Python進行書寫围苫。


分析頁面

首先裤园,我們用Chrome打開動漫之家的全部漫畫頁面,然后打開F12進行Debug調(diào)試剂府。

dmzj搜索

由于我們寫的爬蟲為搜索爬蟲拧揽,即有篩選性質(zhì)的選擇爬蟲。因此腺占,擺在我們面前的第一件事就是分析搜索的功能實現(xiàn)淤袜。

  1. 輸入關(guān)鍵字并點擊搜索
  2. post關(guān)鍵字到服務器并處理請求
  3. 返回搜索的結(jié)果并渲染頁面
    正如上述分析的過程,我們最主要的就是跟蹤post的請求過程衰伯。這里就借助于Chrome的Debug開發(fā)工具铡羡,然后根據(jù)過程來嘗試分析一下post請求。
post捕獲

可以看出Chrome捕獲了post請求的過程意鲸,然后我們可以清楚的看到當我們點擊搜索時候請求的URL鏈接地址烦周。所以,我們爬蟲的第一次請求post向這個URL怎顾。
接著我們繼續(xù)分析读慎,將紅框的內(nèi)容往下拉,可以看到一堆請求和影響的Headers信息槐雾,以及我們post的參數(shù)內(nèi)容信息贪壳。

post 參數(shù)

可以看到它的參數(shù)組成為鍵值對類型,具體寫成:
{"keywords": "第一次的Gal"}
瞧完了post的請求過程之后蚜退,我們就可以來分析一下響應的內(nèi)容闰靴。我們點擊Response Tab頁面,可以看出響應的內(nèi)容為一個完整的HTML頁面钻注。

response頁面

由于我們的最終目的是爬取我們搜索的漫畫內(nèi)容蚂且,因此,在獲取搜索的響應之后幅恋,我們需要繼續(xù)進行Deep爬取杏死。

具體頁面內(nèi)容

我們看到了搜索的結(jié)果僅有一部漫畫,所以我們可以來獲取它的Deep鏈接。右鍵點擊“檢查”淑翼,可以跳轉(zhuǎn)到當前的頁面的DOM節(jié)點腐巢。

檢查DOM

通過右側(cè)的dom節(jié)點觀察,當前的漫畫對應的詳情頁的URL為a標簽的href屬性玄括。當然除此之外冯丙,還可以提取出漫畫名、作者遭京、最新更新狀態(tài)等胃惜。


代碼

因為Python強大的庫資源,這里將借助Python的方便的requests庫進行代碼的書寫哪雕。

# -*- coding: utf-8 -*-

import requests
import json
from lxml import etree
import click

SEARCH_URL = 'https://www.dmzj.com/dynamic/o_search/index'


def post_request(keywords):
    response = requests.post(SEARCH_URL, data={"keywords": str(keywords)})
    try:
        html = etree.HTML(response.content)
        ul_tags = html.xpath('//ul[@class="update_con autoHeight"]/li')
        res = []
        item = {}
        for li_tag in ul_tags:
            item['name'] = li_tag.xpath('./a/@title')[0]
            item['url'] = li_tag.xpath('./a/@href')[0]
            item['cover'] = li_tag.xpath('./a/img/@src')
            item['author'] = li_tag.xpath('//p[@class="auth"]/text()')[0]
            item['status'] = li_tag.xpath('//p[@class="newPage"]/text()')[0]
            click.echo(json.dumps(item, ensure_ascii=False))
    except Exception as e:
        raise e

if __name__ == '__main__':
    inputs = click.prompt("輸入搜索的漫畫名稱", type=str)
    post_request(inputs)

此處應用的庫主要為click船殉、requests、lxml
采用的DOM分析形式為Xpath斯嚎,所有的Python庫均使用pip安裝

謝謝大家了利虫,這是第一次在簡書寫文章,希望大家支持堡僻,下一篇將進一步往Deep分析糠惫。這些代碼之后會在Github上放置,歡迎大家來查看苦始!

下一篇文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寞钥,一起剝皮案震驚了整個濱河市慌申,隨后出現(xiàn)的幾起案子陌选,更是在濱河造成了極大的恐慌,老刑警劉巖蹄溉,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咨油,死亡現(xiàn)場離奇詭異,居然都是意外死亡柒爵,警方通過查閱死者的電腦和手機役电,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棉胀,“玉大人法瑟,你說我怎么就攤上這事⊙渖荩” “怎么了霎挟?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長麻掸。 經(jīng)常有香客問我酥夭,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任熬北,我火速辦了婚禮疙描,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讶隐。我一直安慰自己起胰,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布整份。 她就那樣靜靜地躺著待错,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烈评。 梳的紋絲不亂的頭發(fā)上火俄,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音讲冠,去河邊找鬼瓜客。 笑死,一個胖子當著我的面吹牛竿开,可吹牛的內(nèi)容都是我干的谱仪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼否彩,長吁一口氣:“原來是場噩夢啊……” “哼疯攒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起列荔,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤敬尺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贴浙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砂吞,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年崎溃,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜻直。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡袁串,死狀恐怖概而,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情囱修,我是刑警寧澤赎瑰,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站蔚袍,受9級特大地震影響乡范,放射性物質(zhì)發(fā)生泄漏配名。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一晋辆、第九天 我趴在偏房一處隱蔽的房頂上張望渠脉。 院中可真熱鬧,春花似錦瓶佳、人聲如沸芋膘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽为朋。三九已至,卻和暖如春厚脉,著一層夾襖步出監(jiān)牢的瞬間习寸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工傻工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霞溪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓中捆,卻偏偏與公主長得像鸯匹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泄伪,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

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