成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用Python爬取百度貼吧圖片

YPHP / 1317人閱讀

摘要:背景介紹我大一的時(shí)候?qū)W校就開(kāi)設(shè)了,但是并沒(méi)有好好學(xué),基本等于是什么也不會(huì),最近才開(kāi)始看,所以本身也是摸著石頭過(guò)河,見(jiàn)諒心得講真的,爬蟲(chóng)確實(shí)不像別人想象的那樣簡(jiǎn)單,爬蟲(chóng)首先要靜下心來(lái),細(xì)心尋找目標(biāo)網(wǎng)站的布局規(guī)律,最重要的是的變化,這是一個(gè)考驗(yàn)

背景介紹

我大一的時(shí)候?qū)W校就開(kāi)設(shè)了 python,但是并沒(méi)有好好學(xué),基本等于是什么也不會(huì),最近才開(kāi)始看,所以本身也是摸著石頭過(guò)河,見(jiàn)諒...

心得

講真的,爬蟲(chóng)確實(shí)不像別人想象的那樣簡(jiǎn)單,爬蟲(chóng)首先要靜下心來(lái),細(xì)心尋找目標(biāo)網(wǎng)站的布局規(guī)律,最重要的是 url 的變化,這是一個(gè)考驗(yàn)?zāi)托呐c細(xì)心的過(guò)程;爬蟲(chóng)沒(méi)有一個(gè)固定的套路,我們得時(shí)刻周旋于各種反爬蟲(chóng)機(jī)制中,并深陷不能自拔(sorry,廢話太多了),我們只能學(xué)習(xí)這種爬蟲(chóng)的思想,一定要多加練習(xí),掌握知識(shí)的最佳途徑就是實(shí)踐,不要眼高手低,跟著大神的腳步模仿、練習(xí),大神都是這樣一步一步走過(guò)來(lái)的,加油。。。

遇到的問(wèn)題

首先我們要知道所謂的爬蟲(chóng)其實(shí)說(shuō)到原理上就是:1、如何獲取到想要的目標(biāo)信息?2、如何存入本地?3、如何轉(zhuǎn)換格式
基于這三點(diǎn)我來(lái)簡(jiǎn)單說(shuō)明一下
1、我在爬取百度貼吧的圖片時(shí),剛開(kāi)始也是一度彷徨,不知道該如何下手,于是我把教程看了好幾遍,又反復(fù)琢磨百度貼吧的html格式,終于我發(fā)現(xiàn)了我想要的數(shù)據(jù)的規(guī)律,從變化中尋求規(guī)律,這才是我們爬蟲(chóng)的解決之道,于是我發(fā)現(xiàn)它的 url 每次前半截基本都不會(huì)發(fā)生變化,并且會(huì)跟著相應(yīng)的翻頁(yè)數(shù)進(jìn)行變化,這是第一個(gè)規(guī)律
2、細(xì)心查找之下發(fā)現(xiàn),它的突變的標(biāo)簽的上下父子節(jié)點(diǎn)也基本是固定的,這也給我們帶來(lái)了很大的便捷,于是,我就在雖然這個(gè)圖片的地址是一直發(fā)生變化的,但是我們可以從它的父子節(jié)點(diǎn)入手從而可以拿到這個(gè)圖片的url地址,最后拿著這個(gè)url去請(qǐng)求圖片然后下載到本地這樣不就行了嘛
3、這樣我們的關(guān)注點(diǎn)就變成了如何拿到它的相關(guān)的父子節(jié)點(diǎn)信息呢?我仔細(xì)的查找了相關(guān)的知識(shí)點(diǎn),發(fā)現(xiàn)在python中,處理html數(shù)據(jù)的雖然有很多框架可以做到,但是有三大最流行的技術(shù):正則表達(dá)式,這個(gè)相信不用我多說(shuō)了,無(wú)論什么語(yǔ)言都有正則表達(dá)式,并且由于是各種語(yǔ)言內(nèi)置的,因此配置簡(jiǎn)單,但是使用難度是最高的(果然任何事物都有其有利有弊的一面,無(wú)所例外);第二個(gè)就是 xpath,這個(gè)相對(duì)于正則難度就要小點(diǎn),需要自己熟悉一下它的寫法,并且需要導(dǎo)入lxml這個(gè)庫(kù),在下載時(shí)需要注意(下載是比較麻煩的,我當(dāng)時(shí)就是搞了好久,版本一值不對(duì),考驗(yàn)?zāi)托模?;第三個(gè)就是 BeautifulSoup,這個(gè)是三個(gè)里面最簡(jiǎn)單的一個(gè),比較容易上手,有專門的官方文檔說(shuō)明(飛機(jī)票:https://beautifulsoup.readthe...)
4、我個(gè)人是比較推薦使用正則表達(dá)式的,什么效率方面的就不說(shuō)了,推崇的是它的使用面最廣,什么語(yǔ)言都可以直接使用(由于我本身還使用別的語(yǔ)言,比如java、scala、go、node、python等),所以這也是我特別青睞它的理由(正則基礎(chǔ)一定要學(xué)好,慢慢練習(xí),加油哦)
5、接下來(lái)就是數(shù)據(jù)處理了,這里我是將這些圖片直接保存到本項(xiàng)目下的一個(gè)文件夾下面了,后續(xù)可以配置數(shù)據(jù)庫(kù),直接寫入數(shù)據(jù)中。好了,大致思路就介紹到這里了,畢竟需要?jiǎng)邮肿鲆槐椴拍芾斫猓瑲g迎交流(ps:在源碼中也給出了我的私人郵箱哦)

源代碼
#! /usr/bin/env python
# -*- coding:utf-8 -*-

"""
爬取百度貼吧的數(shù)據(jù)
author : [email protected]
data : 2018-11-07 22:27
"""

import urllib2
import urllib

def loadPage(url,filename):
    """
        作用:根據(jù) url 發(fā)送請(qǐng)求,獲取服務(wù)器響應(yīng)文件
    :param url: 需要爬取的 url 地址
    :return:
    """
    print "正在下載 " + filename
    request = urllib2.Request(url,headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"})
    response = urllib2.urlopen(request)
    return response.read()

def writePage(html, filename):
    """
    作用:將 html 內(nèi)容寫入到本地
    :param html: 服務(wù)器響應(yīng)文件內(nèi)容
    :return:
    """
    print "正在保存 " + filename
    # 文件寫入
    with open(filename.decode("utf-8"), "w") as f:
        f.write(html)
    print "-" * 30


def tiebaSpider(url, beginPage, endPage):
    """
    作用:貼吧爬蟲(chóng)調(diào)度器,負(fù)責(zé)組合處理每個(gè)頁(yè)面的 url
    url : 貼吧 url 的前部分
    beginPage:起始頁(yè)
    endPage:結(jié)束頁(yè)
    :return:
    """
    for page in range(beginPage, endPage + 1):
        pn = (page - 1) * 50
        filename = "第" + str(page) + "頁(yè).html"
        fullurl = url + "&pn=" + str(pn)
        print fullurl
        html = loadPage(fullurl,filename)
        #print html
        writePage(html,filename)

if __name__ == "__main__":
    kw = raw_input("請(qǐng)輸入需要爬取的貼吧名:")
    beginPage = int(raw_input("請(qǐng)輸入起始頁(yè):"))
    endPage = int(raw_input("請(qǐng)輸入結(jié)束頁(yè):"))

    url = "http://tieba.baidu.com/f?"
    key = urllib.urlencode({"kw" : kw})
    fullurl = url + key
    tiebaSpider(fullurl,beginPage,endPage)
聲明
原創(chuàng)手敲不易,轉(zhuǎn)載請(qǐng)注明出處,謝謝。我是拉丁小毛,歡迎大家關(guān)注我哦,一起交流,共同進(jìn)步。有問(wèn)題可以郵我哦([email protected])

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

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

相關(guān)文章

  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • 零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)

    摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),。本文來(lái)源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲(chóng)軟件定制開(kāi)發(fā)服務(wù),服務(wù)范圍涵蓋社交網(wǎng)絡(luò)電子商務(wù)分類信息學(xué)術(shù)研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)服務(wù),現(xiàn)整理出零基礎(chǔ)如何學(xué)爬蟲(chóng)技術(shù)以供學(xué)習(xí),http://www.chujiangdata.com。 第一:Python爬蟲(chóng)學(xué)習(xí)系列教程(來(lái)源于某博主:htt...

    KunMinX 評(píng)論0 收藏0
  • 段友福利:Python爬取段友之家貼吧圖片和小視頻

    摘要:由于最新的視頻整頓風(fēng)波,內(nèi)涵段子被迫關(guān)閉,廣大段友無(wú)家可歸,但是最近發(fā)現(xiàn)了一個(gè)段友的,版本更新也挺快,正在號(hào)召?gòu)V大段友回家,如下圖,有興趣的可以下載看看我不是打廣告的,沒(méi)收廣告費(fèi)的同時(shí),之前同事也發(fā)了一個(gè)貼吧的段子聚居地,客官稍等,馬上奉上 由于最新的視頻整頓風(fēng)波,內(nèi)涵段子APP被迫關(guān)閉,廣大段友無(wú)家可歸,但是最近發(fā)現(xiàn)了一個(gè)段友的app,版本更新也挺快,正在號(hào)召?gòu)V大段友回家,如下圖,有...

    singerye 評(píng)論0 收藏0
  • 嘗試用Python3爬取網(wǎng)頁(yè)圖片的過(guò)程記錄

    摘要:上有一個(gè)關(guān)于下載百度貼吧里的美女圖片的練習(xí)題,最近正好在學(xué)爬蟲(chóng)相關(guān)的知識(shí),拿來(lái)練練手。這是我的目標(biāo)網(wǎng)頁(yè)。 Github上有一個(gè)關(guān)于下載百度貼吧里的美女圖片的練習(xí)題,最近正好在學(xué)爬蟲(chóng)相關(guān)的知識(shí),拿來(lái)練練手。這是我的目標(biāo)網(wǎng)頁(yè)。最開(kāi)始的時(shí)候我在網(wǎng)上找到一個(gè)類似的案例,代碼如下圖:showImg(https://segmentfault.com/img/bVbh2SX);稍作修改,運(yùn)行之后得到...

    alin 評(píng)論0 收藏0
  • python爬蟲(chóng)學(xué)習(xí) 】python3.7 scrapy 安裝,demo實(shí)例,實(shí)踐:爬取百度

    摘要:安裝可能的問(wèn)題問(wèn)題解決實(shí)例教程中文教程文檔第一步創(chuàng)建項(xiàng)目目錄第二步進(jìn)入創(chuàng)建爬蟲(chóng)第三步創(chuàng)建存儲(chǔ)容器,復(fù)制項(xiàng)目下的重命名為第四步修改提取數(shù)據(jù)引入數(shù)據(jù)容器第五步解決百度首頁(yè)網(wǎng)站抓取空白問(wèn)題設(shè)置設(shè)置用戶代理解決相關(guān)解決數(shù)據(jù)保存亂 pip 安裝 pip install scrapy 可能的問(wèn)題: 問(wèn)題/解決:error: Microsoft Visual C++ 14.0 is requi...

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

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

0條評(píng)論

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