2011-04-02 157 views
1

我是新來的,對於一般的網頁開發來說很新穎。我的背景是3D建模和設計,但我最近開始了一個項目,我認爲這個項目可以成爲3D社區的一個很好的資源。將圖像從一個網站刮到另一個網站

我已經得到了主要設計和編碼在這裏的頁面:The Top Row,但我只是在我的知識最後。上部分和下部(藝術家聚光燈)部分將手動更新,所以我不擔心這些。

我遇到麻煩的部分是「最好的休息」標題下的中間部分。我想要做的是從七個傑出的CG論壇中抓取圖片(和鏈接),並將其展示在我已佈置的內容區域中。每個論壇的頁面頂部都有一個顯示五到六張精選圖片的部分。

例如,如果你看CGSociety,例如:他們有六個特色部分的第一行。我想把這三個最新的,並顯示在我的CGSociety內容框與鏈接到原始線程。重要的是我也獲得了鏈接,因爲整個網站的重點是爲值得擁有的藝術家創作曝光。

的圖像總是在相同的位置,並始終有一個可預測的路徑一路攀升到圖像名稱:

即:http://features.cgsociety.org/cgtalk/plugs/"featured image".jpg

我不知道這是否是相關的,但中的XPath因爲圖像也是可靠的。對於CGSociety來說,圖像基本上由最後一組括號中的數字決定。

/x:html/x:body/x:div[4]/x:div/x:div/x:table[1]/x:tbody/x:tr/x:td[1]/x:a/x:img 

我看了這麼多不同的堆棧溢出的線程,但這麼多的它會在我的頭上。我沒有太多的編程經驗,但我懷疑我想要做的並不是那麼複雜。

因此,這裏是我的主要問題:

  1. 什麼是對這種拼搶的最佳(最簡單的)方法?我一直看到提到美麗湯或lxml的Python,但其他人推薦使用cURL和xPath的PHP。

  2. 是否有一種特殊的方法可以使源代碼論壇的可能性最小?這些論壇都有成千上萬的會員資格,所以這可能不是一個大問題,但是如果可能的話,我很樂意在沒有直接盜鏈的情況下這樣做。

  3. 我是否在正確的方向?

:我知道刮是一個法律的灰色區域。我打算徵求每個相關論壇的許可,但我希望有一個工作模型,讓我在問問時向他們展示。

任何幫助將是非常非常感激。我認爲這可能是一個很酷的網站,如果我能得到它的工作。

回答

4

我刷新我的LXML知識了一下,給你寫了一些代碼,擦傷您從該頁面想要的東西:

import lxml.html 

images = [] 

html = lxml.html.parse("http://forums.cgsociety.org/") 
table = html.xpath("//div[@class='page']/div[1]/table[1]")[0] 

for cell in table.iterfind(".//td"): 
    image = {} 
    image['img_url'] = cell.find('a/img').get('src') 
    image['link_url'] = cell.find('a').get('href') 
    images.append(image) 

images現在包含:

[{'img_url': 'http://features.cgsociety.org/cgtalk/plugs/meind_p.jpg', 
    'link_url': 'http://forums.cgsociety.org/showthread.php?s=&threadid=975814&utm_medium=plugblock&utm_source=cgtalk'}, 
{'img_url': 'http://features.cgsociety.org/cgtalk/plugs/plugimg.jpg', 
    'link_url': 'http://forums.cgsociety.org/showthread.php?s=&threadid=975032&utm_medium=plugblock&utm_source=cgtalk'}, 
{'img_url': 'http://features.cgsociety.org/cgtalk/plugs/cg_portfolio_elmoooo.jpg', 
    'link_url': 'http://elmoooo.cgsociety.org/gallery/?z=0&utm_medium=plugblock&utm_source=cgtalk'}, 
{'img_url': 'http://features.cgsociety.org/cgtalk/plugs/suck_p.jpg', 
    'link_url': 'http://forums.cgsociety.org/showthread.php?s=&threadid=973971&utm_medium=plugblock&utm_source=cgtalk'}, 
{'img_url': 'http://features.cgsociety.org/cgtalk/plugs/cry_p.jpg', 
    'link_url': 'http://forums.cgsociety.org/showthread.php?s=&threadid=972537&utm_medium=plugblock&utm_source=cgtalk'}, 
{'img_url': 'http://features.cgsociety.org/cgtalk/plugs/gerrard_p.jpg', 
    'link_url': 'http://forums.cgsociety.org/showthread.php?s=&threadid=972012&utm_medium=plugblock&utm_source=cgtalk'}] 

隨時給我發電子郵件(你可以在我的個人資料中找到它),如果你想要更多的幫助。

+0

真是個好人啊! – Sophivorus 2016-02-17 04:22:34

0

這些圖像可以直接使用,無論您使用哪種語言,都可以使用這些圖像。使用Xpath是一個好方法。

確保將圖像下載到服務器上,而不是從源網站加載它們,或者某些網站會阻止您的IP。

如果你沒有發現有關網絡抓取的知識,並重視你的時間,那麼最好聘請經驗豐富的人爲你做。