мой Scrapy Spider перестает работать, когда встречается с нестандартным форматом веб-сайта. Вот элемент веб-сайта, который go НЕПРАВИЛЬНО (выделенная часть):
Правильный элемент имеет атрибуцию «а». он выглядит так ((выделенная часть)):
А вот мой Паук:
import scrapy
from scrapy.crawler import CrawlerProcess
class MySpider(scrapy.Spider):
name = "name"
allowed_domains = ["website domain"]
start_urls = ['Mywebsite link']
def parse(self, response):
self.log('I just visited: ' + response.url)
for i in response.css('tr.odd'):
item = {
'company_name': i.css('td > a::text')[0].extract(),
'ABN': i.css('td > a::text')[1].extract(),
'status': i.css('td::text')[2].extract(),
'size': i.css('td::text')[3].extract(),
'suburb/town': i.css('td::text')[4].extract(),
'state': i.css('td::text')[5].extract(),
}
yield item
for i in response.css('tr.even'):
item = {
'company_name': i.css('td > a::text')[0].extract(),
**'ABN': i.css('td > a::text')[1].extract()**, # this part stops working
'status': i.css('td::text')[2].extract(),
'size': i.css('td::text')[3].extract(),
'suburb/town': i.css('td::text')[4].extract(),
'state': i.css('td::text')[5].extract(),
}
yield item
# follow pagination link
next_page_url = response.css('li.next > a::attr(href)').extract_first()
if next_page_url:
next_page_url = response.urljoin(next_page_url)
yield scrapy.Request(url=next_page_url, callback=self.parse)
На сайте это выглядит так: Часть «информация недоступна» в этой строке останавливает моего паука. Покажи, пожалуйста, что мне делать. Спасибо!