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

Парсинг данных

09.07.2019, 19:15. Показов 1591. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, вот код, с помощью которого я получаю с сайта данные. В переменную result, в данном коде поступают результаты матчей, но иногда встречаются вместо цифр слова типа: away, home, Cancelled, как можно игнорировать и не выводить эти слова, мне нужны только цифровые результаты, кто сможет помочь с этим? То есть нужно, чтобы матчи, которые с результатом типа: away, home, Cancelled, просто не учитывались и пропускались...

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
import requests
from bs4 import BeautifulSoup
 
url = "https://ru.betsapi.com/cs/tennis/2019-07-06/p.1"
 
response = requests.get(url)
 
html = response.text
 
soup = BeautifulSoup(html, "html.parser")
 
table = soup.find("table", {"class":"table table-sm"})
 
trr = table.find_all("tr")
 
flag1 = 0
flag2 = 0
flag3 = 0
 
for tr in trr:
    liga = tr.find_all("a")[0].text.replace(',', '').replace('M15 ', '').replace('M25 ', '').replace('W25 ', '').replace('W15 ', '').strip()
    name_player_one = tr.find_all("a")[1].text.replace(',', '')
    name_player_two = tr.find_all("a")[2].text.replace(',', '')
    result = tr.find_all("a")[3].text.strip().replace(',', ' ').replace('-', ' ').split()[0:4]
    
    print(result)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.07.2019, 19:15
Ответы с готовыми решениями:

Парсинг данных
Всем привет, осваиваю парсинг на сайте bios.ge, всё отлично работает однако если карточка товара заполненна не корректно и не хватает каких...

Парсинг данных html
Здравствуйте, вот код с помощью которого я делаю парсинг сайта https://forexstandard.ru/countries-currency-in-the-world/. Данные удачно...

Парсинг - нажатие кнопки обновления данных
Привет, не могу понять как нажать кнопку на скрине, я вроде нахожу её, но кликнуть не могу. http://asunp.meteo.ru/portal/hydroweb/home...

5
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
09.07.2019, 19:51
soberfrog, направление:
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
from builtins import print
import requests
import pygame
import os
import sys
import binascii
from pygame.locals import *
import shutil
import bs4
from bs4 import BeautifulSoup
from urllib.request import urlopen
import time
from smtplib import SMTP_SSL
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import  encoders
import lxml.html
import sqlite3
import urllib
url='http://htmlbook.ru/samhtml5/ustarevshie-tegi-i-atributy/'
def get_html(url):
    f = myhtml = urlopen(url)
    sp = BeautifulSoup(myhtml, "html.parser")
    lnk=sp.find_all("span",class_="tag")
    for l in lnk:
        l=str(l)
        l=l.replace('"',' ')
        l=l.replace("<span class= tag >",'')
        l=l.replace('</span>',' ')
        l=l.replace('&gt','')
        l=l.replace('&lt','')
        l=l.replace(';',' ')
        print(l)
 
if __name__ == '__main__':
    get_html(url)
0
1 / 1 / 0
Регистрация: 03.12.2015
Сообщений: 126
09.07.2019, 22:21  [ТС]
Что это мне должно дать?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
09.07.2019, 22:37
В этом коде был папрсинг сайта, с выбором всех спанов с классом tag, можно использовать как пример.
Без адреса сайта не могу помочь больше.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.07.2019, 23:29
Цитата Сообщение от soberfrog Посмотреть сообщение
Что это мне должно дать?
Что использовать BS4 - значит писать говнокод.
Учитесь составлять правильные XPATH выражения и будет вам счастье.
Я вашу таблицу могу спарсить несколькими строчками. Но в этих строчках ни разу не будет упомянут суп (только православный lxml).
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
10.07.2019, 01:49
Со всеми непустыми полями:
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 lxml.html
import requests
import re
from pprint import pprint
 
url = 'https://ru.betsapi.com/cs/tennis/2019-07-06/p.1'
data = requests.get(url).text
root = lxml.html.fromstring(data)
 
def test():
    tds = root.cssselect('table[class="table table-sm"] td')
    it = [iter(tds)] * 6
    patt = re.compile(r'away|home|Cancelled')
    data = []
    for t in zip(*it):
         subdata = []
         for _ in t: 
            text = _.text_content().strip()
            if text:
                if not patt.match(text):
                    subdata += [text]
                else:
                    subdata = []
                    break        
         if subdata:
            data.append(subdata)       
       
    pprint(data)
    print(len(data))
# Аналог, где фильтр делается исключительно средствами XPATH

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def test1():
    trs = root.xpath('''
    //table[@class="table table-sm"]/tr[
        not(contains(.,"away")) and
        not(contains(.,"home")) and
        not(contains(.,"Cancelled"))
    ]
    ''')
    data = []
    for tr in trs:
        subdata = []
        for _ in tr.cssselect('td'): 
            text = _.text_content().strip()
            text = re.sub(r'(M|W)\d{2}','',text)  # удалить ненужные символы - одна регулярка вместо кучи replace
            if text:
                subdata += [text]    
        data.append(subdata) 
    pprint(data)
    print(len(data))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.07.2019, 01:49
Помогаю со студенческими работами здесь

Парсинг данных с сайта с авторизацией на Python
Здравствуйте! Я новичок, пишу курсовую и пытаюсь сделать парсер на Python для сайта на котором нужно заполнить форму что бы получить...

Парсинг данных с сайта Московской биржи
Доброго дня! Написал простенький скрипт по парсингу данных ОФЗ с сайта Мос.Биржи. По одному тикеру все срабатывает как надо: ...

Парсинг генерируемого массива данных с сайта в Excel на Python
Не могу сообразить как сделать, чтобы запись переменных с каждой итерацией переносилась на новую строку таблицы, есть ли способ это...

Парсинг данных из crm
Здравствуйте, получилось так, что надо реализовать парсинг данных из CRM системы в телеграм бот, подскажите пожалуйста можно ли это как-то...

Парсинг и конкатенация данных
Здравствуйте. Мне нужно спарсить погоду.Я бы хотел произвести конкатенацию. Да, мне стыдно, но меня переклинело. На примере есть код: ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru