Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 5
Регистрация: 20.12.2016
Сообщений: 149
1

ошибки в программе парсере

05.03.2018, 17:40. Показов 597. Ответов 4
Метки нет (Все метки)

привет собственно вот такой вот код

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import requests
from bs4 import BeautifulSoup
import csv
from datetime import datetime
 
def get_html(url):
    r = requests.get(url)
    return r.text
 
def get_all_links(html):
    soup = BeautifulSoup(html,'lxml')
    tds = soup.find('table', id='currencies-all').find_all('td',class_='currency-name')
    links= []
 
    for td in tds:
        a = td.find('a').get('href')
        link ='https://coinmarketcap.com' + a
        links.append(link)
    return  links
 
def parser(html):
    soup = BeautifulSoup(html,'lxml')
    try:  #оброботка исключений
        name = soup.find('h1',class_ = 'text-large').text.strip()
    except:   #оброботка исключений
        name = ''
    try:
        price = soup.find('span',id = 'quote_price').text.strip()
    except:
        price = ''
    data = {'name': name,
            'price': price}
 
def write_csv(data):
    with open('coinmarketcap.csv','a') as f:
        writer =csv.writer(f)
 
        writer.writerow((data['name'],
                        data['price']))
 
        print(data['name'],'parsed')
def main():
    start =datetime.now()
    url ='https://coinmarketcap.com/all/views/all/'
    all_links = get_all_links(get_html(url))
    for url in all_links:
        html = get_html(url)
        data = get_all_links(html)
        write_csv(data)
    end =datetime.now()
    total = end-start
    print(str(total))
 
 
if __name__ =='__main__':
    main()
не могу разобраться как поправить ошибки, и в чем дело

вот ошибки
C:\Users\1\Desktop\bot2\venv\Scripts\python.exe C:/Users/1/Desktop/bot/bot.py
Traceback (most recent call last):
File "C:/Users/1/Desktop/bot/bot.py", line 56, in <module>
main()
File "C:/Users/1/Desktop/bot/bot.py", line 48, in main
data = get_all_links(html)
File "C:/Users/1/Desktop/bot/bot.py", line 12, in get_all_links
tds = soup.find('table', id='currencies-all').find_all('td',class_='currency-name')
AttributeError: 'NoneType' object has no attribute 'find_all'

Process finished with exit code 1

среда разработки pycharm
спасибо
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2018, 17:40
Ответы с готовыми решениями:

Что делать с такой ошибкой в программе парсере?
Ребят сделал программу translator с паскаля на с++ описал try...catch для кнопки выполнить вот код:...

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть...

Ошибки в программе
rational.h #define _Rational_h_ #include &lt;iostream&gt; using namespace std; int nod(int p, int...

Ошибки в программе С++
Помогите их исправить в выделенном фрагменте пишет не объявленный индификатор #include...

4
1280 / 897 / 479
Регистрация: 05.12.2013
Сообщений: 2,961
05.03.2018, 18:45 2
Цитата Сообщение от swswsss Посмотреть сообщение
tds = soup.find('table', id='currencies-all').find_all('td',class_='currency-name')
AttributeError: 'NoneType' object has no attribute 'find_all'
Не может найти таблицу с id='currencies-all', такая таблица есть на странице?
0
0 / 0 / 5
Регистрация: 20.12.2016
Сообщений: 149
05.03.2018, 20:00  [ТС] 3
Цитата Сообщение от ТабуретY Посмотреть сообщение
Не может найти таблицу с id='currencies-all', такая таблица есть на странице?
да есть вот она
0
Миниатюры
ошибки в программе парсере  
1280 / 897 / 479
Регистрация: 05.12.2013
Сообщений: 2,961
05.03.2018, 20:34 4
Контент на странице генерируется налету с помощью javascript, так что библиотеки работающие с html не помогут. тут надо headless browser, хотя бы chrome в режиме headless запускать и оттуда доставать нужную информацию
0
Эксперт Python
4529 / 3304 / 1066
Регистрация: 28.10.2013
Сообщений: 8,487
Записей в блоге: 1
05.03.2018, 21:18 5
У таких сайтов всегда есть REST API. Нужно просто погуглить: coinmarketcap api
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2018, 21:18

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Ошибки в программе
Знакомый &quot;программист&quot; написал программу к заданию: Задается число m. Определить вид числа в...

Ошибки в программе
Помогите разобраться с ошибками. unit Unit1; interface uses Windows, Messages, SysUtils,...

Ошибки в программе
Подскажите пожалуйста как возвести в квадрат число кроме умножения его самого на себя. /Составить...

Ошибки в программе
Запутался я с программой, может быть свежий взгляд осветит мои ошибки. а вот ее условие: Создать...

Ошибки в программе
Помогите составить программу. За даними, що містяться в таблиці Результати тесту, створіть...

Ошибки в программе
1) Задумывалась как тестирующая программа. 2) ряд ошибок, в том числе и Undeclared identifier:...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.