2012-03-02 125 views
0

我正在用Python編寫一個程序來提取給定網站中的所有網址。網站中的所有網址都不是來自網頁。 正如我想的那樣,我不是第一個想做這件事的人,我想知道是否有現成的解決方案,或者我是否必須親自編寫代碼。如何從網站中提取所有網址?

+1

......還有,看看'scrapy' – inspectorG4dget 2012-03-02 15:22:12

回答

0

這不會是容易的,但一個體面的出發點是尋找到這兩個庫:

urllib
BeautifulSoup

+0

PyQuery也是金丹HTTP生活://packages.python.org/pyquery/api.html ...你將能夠像在jQuery中那樣查詢DOMD – bchhun 2012-03-02 15:24:12

0

我沒有看到任何現成的腳本,這是否對快速谷歌搜索。

使用scrapy框架使這幾乎微不足道。

耗時的部分將學習如何使用scrapy。雖然這些教程非常棒,並且不會讓你感到很長時間。

http://doc.scrapy.org/en/latest/intro/tutorial.html

創建其他人可以使用的解決方案是一種存在編程社區的一部分樂趣之一。 iF刮板不存在,您可以創建一個每個人都可以用來從站點獲取所有鏈接的刮板!

+0

謝謝你的回答 – user1119429 2012-03-02 20:05:04

0

給出的答案是我會建議的(+1)。

但如果你真的想要做一些快速和簡單,而你在* NIX平臺,試試這個:

lynx -dump YOUR_URL | grep http 

YOUR_URL哪裏是您要查詢的網址。這應該得到你想要的東西(未完全寫入除了鏈接)鏈接

0

首先必須使用一個包狀urlibrequests下載網頁的HTML內容。

之後,您可以使用Beautiful Soup來提取網址。事實上,their tutorial展示瞭如何提取封閉在<a>元素作爲一個具體的例子所有鏈接:

for link in soup.find_all('a'): 
    print(link.get('href')) 
# http://example.com/elsie 
# http://example.com/lacie 
# http://example.com/tillie 

如果你也想找到不包含在<a>元素的鏈接,你可能必須編寫更復雜的東西上你自己。

編輯:我也只是跨了專門爲這一任務創造了兩個Scrapy鏈接提取類傳來:

http://doc.scrapy.org/en/latest/topics/link-extractors.html