2013-08-22 1 views
0

У меня есть эта ссылка:Как получить следующую ссылку на страницу в python beautifulsoup?

http://www.brothersoft.com/windows/categories.html 

Я пытаюсь получить ссылку на элемент внутри DIV. Пример:

http://www.brothersoft.com/windows/mp3_audio/midi_tools/ 

Я попробовал этот код:

import urllib 
from bs4 import BeautifulSoup 

url = 'http://www.brothersoft.com/windows/categories.html' 

pageHtml = urllib.urlopen(url).read() 

soup = BeautifulSoup(pageHtml) 

sAll = [div.find('a') for div in soup.findAll('div', attrs={'class':'brLeft'})] 

for i in sAll: 
    print "http://www.brothersoft.com"+i['href'] 

Но я только получаю выход:

http://www.brothersoft.com/windows/mp3_audio/ 

Как я могу получить выход, что мне нужно?

+0

Прекрасно работает, в чем проблема? – dorvak

+0

вывод должен быть http://www.brothersoft.com/windows/mp3_audio/midi_tools/ –

ответ

2

Url http://www.brothersoft.com/windows/mp3_audio/midi_tools/ нет в тегах <div class='brLeft'>, поэтому если выход http://www.brothersoft.com/windows/mp3_audio/, это правильно.

Если вы хотите, чтобы получить URL вы хотите, изменить

sAll = [div.find('a') for div in soup.findAll('div', attrs={'class':'brLeft'})] 

к

sAll = [div.find('a') for div in soup.findAll('div', attrs={'class':'brRight'})] 

UPDATE:

пример, чтобы получить информацию внутри 'midi_tools'

import urllib 
from bs4 import BeautifulSoup 

url = 'http://www.brothersoft.com/windows/categories.html' 
pageHtml = urllib.urlopen(url).read() 
soup = BeautifulSoup(pageHtml) 
sAll = [div.find('a') for div in soup.findAll('div', attrs={'class':'brRight'})] 
for i in sAll: 
    suburl = "http://www.brothersoft.com"+i['href'] #which is a url like 'midi_tools' 

    content = urllib.urlopen(suburl).read() 
    anosoup = BeautifulSoup(content) 
    ablock = anosoup.find('table',{'id':'courseTab'}) 
    for atr in ablock.findAll('tr',{'class':'border_bot '}): 
     print atr.find('dt').a.string  #name 
     print "http://www.brothersoft.com" + atr.find('a',{'class':'tabDownload'})['href'] #link 
+0

, как если я хочу получить имя и ссылки приложения внутри midi_tools? –

+0

@wan mohd заплатил, что похоже на то, что вы сделали, получите содержимое страницы midi_tools и узнайте, в каком теге находится информация, затем используйте 'BeautifulSoup', чтобы получить информацию. –

+0

@ Davd.Zheng Нужно ли мне использовать 'join' или что-то еще? –

Смежные вопросы