Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 13, 2018 05:21:48

stekachev
Зарегистрирован: 2018-02-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

пустая выдача при парсинге

Всем добра! Подскажите пожалуйста, хочу спарсить выдачу сайта Закупки Москвы, для парсинга использовую bs4, но на выдачи пустые строки, никак не могу разобраться как парсить данный вид сайта

 [code python]from lxml import etree
import requests
from bs4 import BeautifulSoup
def get_html(url):
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36'}
    r = requests.get(url, headers=headers)
    return r.text
def get_all_links(html):
    soup = BeautifulSoup(html, 'lxml')
    names = soup.find('div', class_='cssp_news').find_all('div', class_='col')
    links = []
    for div in names:
        a = div.find('a', class_='text-17').get('href')
        links.append(a)
    return links
def main():
    url = 'http://zakupki.mos.ru/#/offerauction'
    all_links = get_all_links(get_html(url))
    for i in all_links:
        print(i)
if '__name__' == '__main__':
    main()
    
[/code]

Офлайн

#2 Фев. 13, 2018 06:03:45

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

пустая выдача при парсинге

stekachev

Вот как вы дебажите код? У вас не выполняется ни одна функция, потому что вы зачем-то сравниваете два строковых литерала.
Вместо

 if '__name__' == '__main__':
должно быть
 if __name__ == '__main__':

Любой программист за отладкой своих модулей проводит 90% рабочего времени. Ну надо же как-то самостоятельно учится искать ошибки, ну хотя бы примитивно засунуть принты в вызов каждой функции и посмотреть, вызываются они или нет.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version