2016-09-24 4 views
0

мое требование, чтобы прочитать некоторые страницы, которая имеет так много ссылок, доступных для того, я должен остановиться на предположим, что на 4-й линии и я должен читать и подключиться к URL-адресу в этой конкретной ссылке сохранить содержание ссылки в списке снова подсоединенное звено имеет так много ссылок и я должен подключен к каналу связи на 4-е позиции снова повторить этот процесс, пусть 10 раз и, наконец, напечатать имена ссылок соединеныпитон urlib в цикле

я использую этот код urlllib работает только один раз

import urllib 
from bs4 import * 
url = raw_input('enter url:') 
count = raw_input('enter count:') 
position = raw_input('enter position:') 
count = int(count) 
position = int(position) 
l = list() 
p = 0 

for _ in xrange(0,count): 
    print 'retrieving:' + url 
    html = urllib.urlopen(url).read() 
    s = BeautifulSoup(html) 
    tags = s.findAll('a') 
    for tag in tags: 
     w = tag.get('href') 
     p = p + 1 
     if p == position: 
      url = "'" + w + "'" 
      l.append(tag.contents[0]) 

print l 
+0

получает эту ошибку: Traceback (самый последний вызов последнего): файла "C: \ Users \ imran.a.shaik \ Documents \ питона узнать \ soup2.py", строка 13, в HTML = URLLIB. urlopen (url) .read() Файл «C: \ Python27 \ lib \ urllib.py», строка 87, в urlopen return opener.open (url) Файл "C: \ Python27 \ lib \ urllib.py" , строка 210, в открытом return self.open_unknown (fullurl, data) Файл «C: \ Python27 \ lib \ urllib.py», строка 222, в open_unknown raise IOError, ('url error', 'unknown url type ', type) IOError: [Errno url error] неизвестный тип URL: "http: – imran

+0

Почему вы добавляете котировки для url здесь: 'url =" '"+ w +"' "'? Попробуйте просто 'url = w' – artem

ответ

0

Не зная конкретного сайта, о котором вы говорите, это всего лишь догадка, но может быть, ссылки на интересующей вас странице являются относительными, а не абсолютными? Если это так, когда вы переустанавливаете url в цикле for, тогда он будет установлен как неполная ссылка, например /link.php, вместо http://example.com/link.php, и urllib не знает, что с этим делать. Если вы ожидаете, что все ссылки, которые могут вас заинтересовать, будут относительными, тогда вам нужно будет добавить базовый url, прежде чем добавлять новую ссылку для нее.

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