2
У меня есть этот код:Как получить прямую ссылку для скачивания внутри страницы?
import urllib
from bs4 import BeautifulSoup
f = open('log1.txt', 'w')
url ='http://www.brothersoft.com/tamil-font-513607.html'
pageUrl = urllib.urlopen(url)
soup = BeautifulSoup(pageUrl)
for a in soup.select("div.class1.coLeft a[href]"):
try:
suburl = ('http://www.brothersoft.com'+a['href']).encode('utf-8','replace')
f.write ('http://www.brothersoft.com'+a['href']+'\n')
except:
print 'cannot read'
f.write('cannot read:'+'http://www.brothersoft.com'+a['href']+'\n')
pass
content = urllib.urlopen(suburl)
soup = BeautifulSoup(content)
for a in soup.select("div.Sever1.coLeft a[href]"):
try:
suburl2 = ('http://www.brothersoft.com'+a['href']).encode('utf-8','replace')
f.write ('http://www.brothersoft.com'+a['href']+'\n')
except:
print 'cannot read'
f.write('cannot read:'+'http://www.brothersoft.com'+a['href']+'\n')
pass
content = urllib.urlopen(suburl2)
soup = BeautifulSoup(content)
for a in soup.select("span.p a[href]"):
try:
print (a['href']).encode('utf-8','replace')
f.write ('http://www.brothersoft.com'+a['href']+'\n')
except:
print 'cannot read'
f.write('cannot read:'+'http://www.brothersoft.com'+a['href']+'\n')
pass
f.close()
Когда я запускаю его, я получаю этот результат:
http://www.brothersoft.com/d.php?soft_id=513607&url=http%3A%2F%2Ffiles.brotherso
ft.com%2Fphotograph_graphics%2Ffont_tools%2Fkeyman.exe&name=Tamil%20Font
http://ask.brothersoft.com/ask-a-question/?topic=1
http://ask.brothersoft.com/
http://www.brothersoft.com/d.php?soft_id=513607&url=http%3A%2F%2Fusfiles.brother
soft.com%2Fphotograph_graphics%2Ffont_tools%2Fkeyman.exe&name=Tamil%20Font
http://ask.brothersoft.com/ask-a-question/?topic=1
http://ask.brothersoft.com/
Но что мне нужно, это только прямые ссылки на скачивание, как это:
Почему я получил две ссылки для скачивания? http://www.brothersoft.com/d.php?soft_id=513607&url=http%3A%2F%2Ffiles.brotherso ft.com% 2Fphotograph_graphics% 2Ffont_tools% 2Fkeyman.exe & name = Tamil% 20Font http: // www .brothersoft.com/d.php? soft_id = 513607 & url = http% 3A% 2F% 2Fusfiles.brother soft.com% 2Fphotograph_graphics% 2Ffont_tools% 2Fkeyman.exe & name = Tamil% 20Font –
@wanmohdpayed, потому что есть два режима загрузки на второй шаг. Вы можете использовать 'soup.find (" div.Sever1.coLeft a [href] ")' вместо цикла. Дайте мне знать, если у вас есть проблемы с этим. Благодарю. – alecxe
я получил эту ошибку: Traceback (самый последний вызов последнего): Файл "C: \ Users \ внутр-chermo \ Desktop \ soup5.py", строка 32, в содержание = urllib.urlopen (suburl2) файл «C: \ Python27 \ lib \ urllib.py», строка 86, в urlopen return opener.open (url) Файл «C: \ Python27 \ lib \ urllib.py», строка 179, открыта fullurl = развернуть (toBytes (fullurl)) Файл «C: \ Python27 \ lib \ urllib.py», строка 1056, в развертке url = url.strip() AttributeError: объект «NoneType» не имеет атрибута «strip» –