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

資訊專欄INFORMATION COLUMN

獲取貼吧圖片的python爬蟲

Anleb / 364人閱讀

摘要:根據(jù)帖子建立文件夾建立文件夾可以使用庫的方法,注意,如果是方法則只能創(chuàng)建一層目錄。最終代碼運(yùn)行效果

經(jīng)過前兩篇文章 http://segmentfault.com/a/1190000004288204 和 http://segmentfault.com/a/1190000004269037的測(cè)試,決定實(shí)現(xiàn)以下功能:

給定感興趣的貼吧首頁,自動(dòng)獲取帖子的鏈接

進(jìn)入獲取到的鏈接中,將帖子內(nèi)的圖片鏈接提取出來

按照帖子的ID建文件夾,將帖子內(nèi)圖片的鏈接下載為圖片保存到文件夾中

實(shí)現(xiàn)過程:

獲取帖子列表
以百度貼吧“壁紙吧”為例http://tieba.baidu.com/f?kw=%E5%A3%81%E7%BA%B8&ie=utf-8,通過分析該網(wǎng)頁源代碼,發(fā)現(xiàn):

每一個(gè)帖子的鏈接都是

href="/p/xxxxxxxxxx"

再打開對(duì)應(yīng)帖子的鏈接,發(fā)現(xiàn)該帖子正是

http://tieba.baidu.com/p/xxxxxxxxx

所以獲取文章鏈接的思路很簡(jiǎn)單:
獲取到標(biāo)題的href這個(gè)屬性的內(nèi)容,前面加上http://tieba.baidu.com/就是最終的帖子鏈接:

LinkSelector = AirticleFilter.xpath("http://div[@class="threadlist_lz clearfix"]/div/a/@href")

獲取帖子中每個(gè)樓層所包含的圖片鏈接:
這里會(huì)有一個(gè)坑,如果你直接從chrome中審查元素,定位到圖片所在的xpath,有可能是獲取不到真正的鏈接的,而有可能獲取到“l(fā)oading.gif”!這是因?yàn)椋瑘D片在加載時(shí)比較慢,網(wǎng)頁先下載一個(gè)小的動(dòng)畫圖片顯示loading,待下載完成之后再顯示真正的圖片。不過好在在每一個(gè)包含圖片的樓層中的頭部信息中都包含了文件的類型,圖片的大小,圖片的鏈接地址,以及圖片是否為用戶上傳的圖片等信息:

經(jīng)過摸索,我們要提取的是包含有的節(jié)點(diǎn)信息,該節(jié)點(diǎn)中有圖片的實(shí)際鏈接src="http:XXXXXXXX"

BackGroundLink = BackGroundFilter.xpath("http://div[@class="l_post l_post_bright j_l_post clearfix  "]")
ImgSrc = etree.HTML(reply_info["content"]["content"])
ImgLink = ImgSrc.xpath("http://img[@class="BDE_Image"]/@src")

以上xpath首先獲取到樓層,然后獲取到樓層中的content信息,然后將content信息作為html文件再次分析,獲取到包含class="BDE_Image"的圖片的src。

根據(jù)帖子ID建立文件夾
建立文件夾可以使用os庫的mkdirs方法,注意,如果是mkdir方法則只能創(chuàng)建一層目錄。

def MakeDir(TargetDir,FolderName):
    new_path = os.path.join(TargetDir,FolderName)
    if(not os.path.isdir(new_path)):
        os.makedirs(new_path)
    os.chdir(new_path)

最終代碼:

#-*-coding:utf8-*-
from lxml import etree
import SaveLinkIntoFile
import requests
import re
import os
import GetTiebaImg

def GetArticleLinks(url):
    TiebaUrlprefix = "http://tieba.baidu.com"
    html = requests.get(url)
    html = re.sub(r"charset=(/w*)", "charset=UTF-8", html.text)
    AirticleFilter = etree.HTML(html)
    #print(html)
    LinkSelector = AirticleFilter.xpath("http://div[@class="threadlist_lz clearfix"]/div/a/@href")
    for i in range(len(LinkSelector)):
        foldername = LinkSelector[i].strip().lstrip().rstrip("/").replace("/","")
        print(foldername)
        MakeDir("D:Python_Cache",foldername)
        LinkSelector[i] = TiebaUrlprefix + LinkSelector[i]
        GetTiebaImg.GetTiebaImg([LinkSelector[i]])
        os.chdir("../")

    print(LinkSelector)
    return LinkSelector
    # print("the number of links:{0}".format(len(LinkSelector)))
    # for each in LinkSelector:
    #     print("The links:{0}".format_map(each[0]))

def MakeDir(TargetDir,FolderName):
    new_path = os.path.join(TargetDir,FolderName)
    if(not os.path.isdir(new_path)):
        os.makedirs(new_path)
    os.chdir(new_path)
    # print("the Current dir is:{0}".format(os.getcwd()))
    # os.chdir("../")
    # print("the Current dir is:{0}".format(os.getcwd()))


if __name__ == "__main__":
    MakeDir("D:Python_Cache","Cache1")
    TiebaUrl = "http://tieba.baidu.com/f?kw=%E5%A3%81%E7%BA%B8&ie=utf-8"
    GetArticleLinks(TiebaUrl)
    

運(yùn)行效果:

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

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

相關(guān)文章

  • 利用Python爬取百度貼吧圖片

    摘要:背景介紹我大一的時(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ì),最近才開始看,所以本身也是摸著石頭過河,見諒... 心得...

    YPHP 評(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
  • 獲取百度貼吧頭像爬蟲

    摘要:在上一篇文章的基礎(chǔ)上增加獲取百度貼吧的頭像圖片的功能,使用到的技術(shù)為,,具體實(shí)現(xiàn)如下查看網(wǎng)頁源代碼測(cè)試網(wǎng)頁鏈接通過定位頭像的的代碼每一樓層的標(biāo)簽是從樓層開始,直到定位到照片順序應(yīng)該是提取信息通過一步步獲取到這一層,提取到這個(gè)標(biāo)簽中的就可以獲 在上一篇文章的基礎(chǔ)上增加獲取百度貼吧的頭像圖片的功能,使用到的技術(shù)為XPath,Requests,具體實(shí)現(xiàn)如下: 1. 查看網(wǎng)頁源代碼測(cè)試網(wǎng)頁鏈接...

    AJie 評(píng)論0 收藏0
  • Python爬蟲入門教程 9-100 河北陽光理政投訴板塊

    摘要:河北陽光理政投訴板塊開始擼代碼今天再次嘗試使用一個(gè)新的模塊,它可以配合快速解析文檔,官網(wǎng)網(wǎng)站利用安裝,如果安裝失敗,可以在搜索引擎多搜搜,內(nèi)容很多,有解決方案。 1.河北陽光理政投訴板塊-寫在前面 之前幾篇文章都是在寫圖片相關(guān)的爬蟲,今天寫個(gè)留言板爬出,為另一套數(shù)據(jù)分析案例的教程做做準(zhǔn)備,作為一個(gè)河北人,遵紀(jì)守法,有事投訴是必備的技能,那么咱看看我們大河北人都因?yàn)槭裁赐对V過呢? 今天要...

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

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

0條評(píng)論

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