国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

獲取百度貼吧頭像的爬蟲

AJie / 2230人閱讀

摘要:在上一篇文章的基礎上增加獲取百度貼吧的頭像圖片的功能,使用到的技術為,,具體實現如下查看網頁源代碼測試網頁鏈接通過定位頭像的的代碼每一樓層的標簽是從樓層開始,直到定位到照片順序應該是提取信息通過一步步獲取到這一層,提取到這個標簽中的就可以獲

在上一篇文章的基礎上增加獲取百度貼吧的頭像圖片的功能,使用到的技術為XPath,Requests,具體實現如下:

1. 查看網頁源代碼
測試網頁鏈接:http://tieba.baidu.com/p/3522395718?pn=1 通過Chrome定位頭像的HTML的代碼

每一樓層的標簽是:

class="l_post j_l_post l_post_bright  "

從樓層開始,直到定位到照片順序應該是

2. 提取XPath信息
通過XPath一步步獲取到這一層,提取到這個標簽中的src就可以獲取到圖片的url

ImgLink = ImgFilter.xpath("http://div[@class="l_post j_l_post l_post_bright  "]")[0]
links = ImgLink.xpath("http://div[@class="d_author"]/ul/li/div[@class="icon_relative j_user_card"]/a/img/@data-tb-lazyload")

這里會遇到一個問題,如果第二個XPath的條件是/img/@src則會遇到一個問題:
使用requests獲取到的html會有很多空白的頭像

"http://tb2.bdstatic.com/tb/static-pb/img/head_80.jpg"


這是因為網頁是分步加載的,首先使用默認的頭像展示,再逐步下載自定義頭像替換,因此還要得到自定義頭像的地址,通過分析網頁代碼,可以發現:


“data-tb-lazyload”這個才是真正的自定義頭像的鏈接地址

3. 去掉獲取到的鏈接中的重復值
由于貼吧的不同的樓層是有可能是同一個人,即同一個頭像的;為了節省空間,我們要去除掉重復的圖像,在Python中可以通過函數set()去除列表重復值

links = list(set(links))

測試一下:

print("before set list:{0}".format(len(links)))
links = list(set(links))
print("after set list:{0}".format(len(links)))

測試結果:

before set list:27
after set list:21

成功消除掉了重復的鏈接

4.將鏈接存儲到jpeg文件
Requests庫中包含了獲取數據的方法get(),可以使用該方法將鏈接存儲到文件中

with open("img{0}.jpeg".format(i),"wb") as code:
            code.write(graphic.content)
            

完整程序(可直接使用)

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

def GetImgLink(url):
    html = requests.get(url)
    html = re.sub(r"charset=(/w*)", "charset=UTF-8", html.text)
    ImgFilter = etree.HTML(html)
    ImgLink = ImgFilter.xpath("http://div[@class="l_post j_l_post l_post_bright  "]")[0]
    links = ImgLink.xpath("http://div[@class="d_author"]/ul/li/div[@class="icon_relative j_user_card"]/a/img/@data-tb-lazyload")
    #links = ImgLink.xpath("http://div[@class="d_author"]/ul/li/div[@class="icon_relative j_user_card"]/a/img/@src")
    print(links)
    print("before set list:{0}".format(len(links)))
    links = list(set(links))
    print("after set list:{0}".format(len(links)))
    i = 0
    for each_link in links:
        graphic = requests.get(each_link)
        with open("img{0}.jpeg".format(i),"wb") as code:
            code.write(graphic.content)
        i = i + 1


pagelink = "http://tieba.baidu.com/p/3522395718?pn=1"
GetImgLink(pagelink)

測試結果:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45413.html

相關文章

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

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 23個Python爬蟲開源項目代碼,包含微信、淘寶、豆瓣、知乎、微博等

    摘要:今天為大家整理了個爬蟲項目。地址新浪微博爬蟲主要爬取新浪微博用戶的個人信息微博信息粉絲和關注。代碼獲取新浪微博進行登錄,可通過多賬號登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...

    jlanglang 評論0 收藏0
  • python爬蟲爬取百度網盤-怎么做一個百度網盤搜索引擎

    摘要:因為要做去轉盤網,所以一定要爬取網盤資源,本來想自己寫一個爬蟲挺不容易的,不想分享出來,但最后還是決定了拿給大家一起看吧,畢竟有交流才有進步,有興趣的朋友也可以看看我寫的其他日志或者關注我,會發現去轉盤網的大部分技術現在可以說是公開狀態,如 因為要做去轉盤網,所以一定要爬取網盤資源,本來想自己寫一個爬蟲挺不容易的,不想分享出來,但最后還是決定了拿給大家一起看吧,畢竟有交流才有進步,有興...

    k00baa 評論0 收藏0
  • 嘗試用Python3爬取網頁圖片過程記錄

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

    alin 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<