Найти - Пользователи
Полная версия: Scrapy. Паук добавляет только 40 строк в базу данных
Начало » Data Mining » Scrapy. Паук добавляет только 40 строк в базу данных
1
Razor
Здравствуйте, уважаемые форумчане. Возникла проблема следующего характера: Scrapy добавляет в базу данных всего 40 строк, после чего останавливается. Не пойму - то ли дело в настройках, то ли в самом скрипте (но счетчиков в нем нет). Помогите найти причину этой остановки.

Паук парсит изначальную страницу, ищет в ней url-каталогов, передает в парсинг каталогов и ищет url необходимых страниц. На той необходимой странице он ищет информацию, которая записывается в словарь, а потом в базу данных. Скрипт работает только на 40 строк, а потом останавливается. Останавливается сам. Тестировал на разных компьютерах, на разных базах - 40 строк.

База данных - MySQL. Модуль для работы с ней - peewee. Тестировал на двух разных базах - 40 строк.

Настройки:
options = {
        'CONCURRENT_ITEMS': 250,
        'USER_AGENT': 'Googlebot/2.1 (+http://www.google.com/bot.html)',
        'CONCURRENT_REQUESTS': 30,
        'DOWNLOAD_DELAY': 0.5,
        'COOKIES_ENABLED': False,
        'CLOSESPIDER_PAGECOUNT': 1000,
        'CLOSESPIDER_TIMEOUT': 3600,
    }

Код (250 строк): http://pastebin.com/jp9emv9Y

Сайт: http://www.manheimthailand.com/en/site/calendar

Лог:
2014-02-14 20:14:12+0600 [auto] INFO: Crawled 53 pages (at 53 pages/min), scraped 0 items (at 0 items/min)
2014-02-14 20:15:12+0600 [auto] INFO: Crawled 71 pages (at 18 pages/min), scraped 0 items (at 0 items/min)
2014-02-14 20:15:21+0600 [auto] INFO: Closing spider (finished)
2014-02-14 20:15:21+0600 [auto] INFO: Dumping Scrapy stats:
    {'downloader/request_bytes': 57078,
     'downloader/request_count': 75,
     'downloader/request_method_count/GET': 75,
     'downloader/response_bytes': 2058372,
     'downloader/response_count': 75,
     'downloader/response_status_count/200': 75,
     'finish_reason': 'finished',
     'finish_time': datetime.datetime(2014, 2, 14, 14, 15, 21, 192000),
     'request_depth_max': 2,
     'response_received_count': 75,
     'scheduler/dequeued': 75,
     'scheduler/dequeued/memory': 75,
     'scheduler/enqueued': 75,
     'scheduler/enqueued/memory': 75,
     'start_time': datetime.datetime(2014, 2, 14, 14, 13, 12, 8000)}
2014-02-14 20:15:21+0600 [auto] INFO: Spider closed (finished)

Пожалуйста, воздержитесь от предложений перейти на что-то другое. Меня интересует ответ именно на этот вопрос.
py.user.next
Razor
Тестировал на разных компьютерах, на разных базах - 40 строк.
а должно быть сколько ?
запустил, тоже 40 строк получилось
Razor
py.user.next
а должно быть сколько ?

Я точно не знаю. Там на первой странице - около 30 ссылок. В каждой ссылке может быть сколько угодно машин (30, 120, по разному). И это в каждой ссылке. Ну уж точно их больше 40 в общем. Я даже уже не представляю, где ошибка.
py.user.next
Razor
Я точно не знаю. Там на первой странице - около 30 ссылок.
да, меньше сорока там ~35

так ты вручную пройдись и посмотри

mysql> SELECT make, model, km, date_of_auction FROM spiderbase;
+------------+-------------------------------+---------+-----------------+
| make | model | km | date_of_auction |
+------------+-------------------------------+---------+-----------------+
| Proton | Saga 1.3 | 0 | Feb 19 2014 |
| Volvo | S60 Drive | 0 | Feb 19 2014 |
| Toyota | Vigo Smart Cab 2.5 G D4D | 0 | Feb 19 2014 |
| Benz | 280 SLK AMG | 0 | Feb 19 2014 |
| Toyota | Vigo Singlelong 2.7 J VVT-I | 0 | Feb 19 2014 |
| Isuzu | D-Max Cab 4 3.0 i-TEQ VSG | 0 | Feb 19 2014 |
| Toyota | Camry 2.0 G VVT-I | 0 | Feb 19 2014 |
| Honda | City 1.5 | 0 | Feb 19 2014 |
| Isuzu | D-Max Cab 4 3.0 DDi VGS | 0 | Feb 19 2014 |
| Honda | City 1.5 | 0 | Feb 19 2014 |
| Honda | Click 125 I | 9,019 | Feb 26 2014 |
| Yamaha | Fino 115 | 10,073 | Feb 26 2014 |
| Yamaha | Fino 115 | 10,476 | Feb 26 2014 |
| Yamaha | Fino 115 | 8,525 | Feb 26 2014 |
| Honda | Scoopy-I | 4,385 | Feb 26 2014 |
| Yamaha | Fino 115 | 8,146 | Feb 26 2014 |
| Honda | Click 125 I | 5,355 | Feb 26 2014 |
| Honda | Wave 110 I | 13,397 | Feb 26 2014 |
| Honda | Scoopy-I | 8,830 | Feb 26 2014 |
| Yamaha | Fino 115 | 21,145 | Feb 26 2014 |
| Toyota | Vigo Singlelong 2.5 J D4D | 165,505 | Feb 19 2014 |
| Toyota | Commuter | 311,173 | Feb 19 2014 |
| Ford | Focus 2.0 Sport | 263,157 | Feb 19 2014 |
| Toyota | Crown Royal Saloon 3.0 | 111,417 | Feb 19 2014 |
| Toyota | Corolla Altis 1.6 E VVT-I | 254,574 | Feb 19 2014 |
| Toyota | Corolla Altis 1.6 J VVT-I | 158,395 | Feb 19 2014 |
| Toyota | Soluna Vios 1.5 J VVT-I | 157,280 | Feb 19 2014 |
| Toyota | Corolla Altis 1.6 G VVT-I | 49,457 | Feb 19 2014 |
| Mazda | BT50 Freestyle Cab Hi-Racer | 106,763 | Feb 21 2014 |
| Toyota | Soluna Vios 1.5 J VVT-I | 247,700 | Feb 19 2014 |
| Honda | Civic 2.0 I-VTEC | 103,412 | Feb 21 2014 |
| Isuzu | D-Max Space Cab 2.5 Hilender | 35,220 | Feb 21 2014 |
| Isuzu | D-Max Space Cab 2.5 Hilender | 71,920 | Feb 21 2014 |
| Isuzu | D-Max Space Cab 2.5 SLX | 183,278 | Feb 21 2014 |
| Mitsubishi | Strada Mega Cab 2.8 GLX | 306,805 | Feb 21 2014 |
| Toyota | Soluna Vios 1.5 E VVT-I | 174,710 | Feb 21 2014 |
| Toyota | Tiger Cab 2.5 E D4D | 226,278 | Feb 21 2014 |
| Toyota | Vigo Double Cab 3.0G Prerunne | 34,421 | Feb 19 2014 |
| Isuzu | D-Max Space Cab 2.5 SLX | 123,898 | Feb 21 2014 |
| Honda | Jazz 1.5 I-DSI | 229,204 | Feb 21 2014 |
+------------+-------------------------------+---------+-----------------+
40 rows in set (0.00 sec)

mysql>
Razor
py.user.next
так ты вручную пройдись и посмотри

Так уже смотрел. К примеру только вот в этой ссылке (а это, как я уже сказал, одна из 35) - http://www.manheimthailand.com/en/site/car_listing/index/206/X1FNR006/normal - 79 элементов, которые должны быть записаны в таблицу. Но их нет. И не пойму где ошибка. Думал, может какой-нибудь из Request не передает значения - но 40 элементов то записаны и правильно записаны.
py.user.next
Razor
79 элементов
Razor
И не пойму где ошибка.
не переходит на вторую страницу
с первой страницы машины есть в базе, а со второй нет

что-то типа parse_page_group() нужно сделать, который будет перебирать страницы и для каждой делать parse_page()
Razor
py.user.next
не переходит на вторую страницу
с первой страницы машины есть в базе, а со второй нет

Аааа, блин, точно! Огромное преогромное спасибо! Такая мелочь, аж стыдно. Еще раз большое спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB