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

資訊專欄INFORMATION COLUMN

利用Python爬取百度貼吧圖片

YPHP / 1362人閱讀

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

背景介紹

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

心得

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

遇到的問題

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

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

"""
爬取百度貼吧的數(shù)據(jù)
author : shiro.liang.yi@gmail.com
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):
    """
    作用:貼吧爬蟲調(diào)度器,負(fù)責(zé)組合處理每個(gè)頁面的 url
    url : 貼吧 url 的前部分
    beginPage:起始頁
    endPage:結(jié)束頁
    :return:
    """
    for page in range(beginPage, endPage + 1):
        pn = (page - 1) * 50
        filename = "第" + str(page) + "頁.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)輸入起始頁:"))
    endPage = int(raw_input("請(qǐng)輸入結(jié)束頁:"))

    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)步。有問題可以郵我哦(util.you.com@gmail.com)

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

0條評(píng)論

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