Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/40: Рейтинг темы: голосов - 40, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 2

Цикл по ссылкам

16.03.2015, 11:11. Показов 7539. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть подключение к сайту:
Python
1
2
3
4
5
6
7
8
9
10
11
12
import urllib.request
from bs4 import BeautifulSoup
 
html = urllib.request.urlopen('http://www.tennisexplorer.com/next/?type=atp-single&year=2015&month=03&day=17').read()
soup = BeautifulSoup(html)
table = soup.find('table', class_ = 'result')
for row in table:
    tr = table.find_all('tr', id = True)[0::2]
    for row in tr:
        td = row.find_all('td')[12]
        for link in td.find_all('a'):
            a = 'http://www.tennisexplorer.com' + link.get('href')
Сей код выдаёт необходимые ссылки в переменную а.

Далее необходимо, чтобы нижеследующий код пробегался по всем этим найденным ссылкам, которые получаются в переменной а, выполнялся и закрывался. Пытаюсь сделать, но постоянно идёт вечный цикл, как его разумно завершить?

Код, который необходимо выполнить в каждой ссылке, сидящей в переменной а:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
html_2 = urllib.request.urlopen(a).read()
soup_2 = BeautifulSoup(html_2)
div = soup_2.find('div', class_ = {'half-l' : True})
table_2 = div.find_all('table', class_ = 'result mutual')
for row in table_2:
                    match = row.find_all('tr')[1::2]
                    for row in match:
                        cols = row.find_all('td')[1:]
                        cols = (cols[0].text + ' ' + cols[1].text)
                        print(cols)
print('')
div_1 = soup_2.find('div', class_ = {'half-r' : True})
table_3 = div_1.find_all('table', class_ = 'result mutual')
for row in table_3:
                    match_1 = row.find_all('tr')[1::2]
                    for row in match_1:
                        cols_1 = row.find_all('td')[1:]
                        cols_1 = (cols_1[0].text + ' ' + cols_1[1].text)
                        print(cols_1)
print('***')
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2015, 11:11
Ответы с готовыми решениями:

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать учесть особенности получения квадратного...

Вычислить и вывести сумму чётных целых чисел в интервале от 1 до n: 1) цикл «ДО» 2) цикл «ПОКА» 3) цикл «ДЛЯ»
Вычислить и вывести сумму чётных целых чисел в интервале от 1 до n: 1. цикл «ДО» 2. цикл «ПОКА» 3. цикл «ДЛЯ»

Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот цикл в цикл while
Пожалуйста помогите с задачами 1.Написать цикл for, который выводит на экран в столбец числа от 0.3 до 2.7 с шагом 0.2. Переписать этот...

3
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
16.03.2015, 11:16
Код нужно тегами обрамлять
0
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 2
16.03.2015, 11:18  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import urllib.request
from bs4 import BeautifulSoup
 
html = urllib.request.urlopen('http://www.tennisexplorer.com/next/?type=atp-single&year=2015&month=03&day=17').read()
soup = BeautifulSoup(html)
table = soup.find('table', class_ = 'result')
for row in table:
    tr = table.find_all('tr', id = True)[0::2]
    for row in tr:
        td = row.find_all('td')[12]
        for link in td.find_all('a'):
            a = 'http://www.tennisexplorer.com' + link.get('href')
 
# собственно в этом месте загвоздка, что вписать???
 
 
            html_2 = urllib.request.urlopen(a).read()
            soup_2 = BeautifulSoup(html_2)
            div = soup_2.find('div', class_ = {'half-l' : True})
            table_2 = div.find_all('table', class_ = 'result mutual')
            for row in table_2:
                    match = row.find_all('tr')[1::2]
                    for row in match:
                        cols = row.find_all('td')[1:]
                        cols = (cols[0].text + ' ' + cols[1].text)
                        print(cols)
            print('')
            div_1 = soup_2.find('div', class_ = {'half-r' : True})
            table_3 = div_1.find_all('table', class_ = 'result mutual')
            for row in table_3:
                    match_1 = row.find_all('tr')[1::2]
                    for row in match_1:
                        cols_1 = row.find_all('td')[1:]
                        cols_1 = (cols_1[0].text + ' ' + cols_1[1].text)
                        print(cols_1)
           print('***')
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
16.03.2015, 13:21
Да, все просто вроде
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import requests
import lxml.html
 
base_url = 'http://www.tennisexplorer.com'
 
 
def get_pages_players():
    selector = 'div.lGray table.result tr td a'
 
    page = requests.get(base_url + '/next/?type=atp-single&year=2015&'
                                   'month=03&day=17').text
    page = lxml.html.fromstring(page)
    return [i.get('href') for i in page.cssselect(selector) if i.get('title')]
 
 
def get_matches(page_url):
    result = ''
    page = requests.get(base_url + page_url).text
    page = lxml.html.fromstring(page)
 
    for i in page.cssselect('div#center table.result.mutual tr'):
        if 'head' not in i.get('class'):
            match = i.text_content().strip().replace('\n\t\t\t', ' ')
            result += '{0}\n'.format(match)
    return result
 
if __name__ == '__main__':
    for i in get_pages_players():
        print(get_matches(i))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2015, 13:21
Помогаю со студенческими работами здесь

необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием)
Помогите пожалуйста!!! необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием). Очень...

необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием)
Помогите пожалуйста!!! необходимо на паскале написать три программы ( цикл с параметром, цикл с постусловием и цикл с предусловием). Очень...

Цикл с предусловием, цикл с постусловием и цикл с параметром
Объясните пожалуйста как делать эти циклы. У меня не получается. Можете сделать как на фото, или на подобии. Заранее спасибо)

Переход по ссылкам
Добрый день, в html и css не давно, подскажите пожалуйста есть макет созданый на html+CSS на блоках div Во вложения выложил скрин, суть...

Переход по ссылкам
Помогите пожалуйста!!! Написал программу, которая загружает html-документы. Документы содержат ссылки. Как сделать, чтобы программа сама...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru