Я пытаюсь создать простого паука с копьем, чтобы перемещаться по ссылкам, начиная с заданного start_urls
и внутри страниц, скрести два элемента.
Цель: это моя стартовая страница . здесь вы видите список амулетов, я хочу ввести каждую из этих страниц амулетов, а внутри этих страниц очистить текст аромата и название предмета.
Сначала я создал работающий прототип, который дал один амулет, который очищал его данные, теперь я хочу расширить его, чтобы он сделал это для всех сразу, но я изо всех сил пытаюсь найти, как это сделать.
Вот код на данный момент:
import scrapy
from PoExtractor.items import PoextractorItem
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class ArakaaliSpider(scrapy.Spider):
name = "arakaali"
allowed_domains = ['pathofexile.gamepedia.com']
start_urls = ['https://pathofexile.gamepedia.com/List_of_unique_accessories']
rules = (Rule(LinkExtractor(restrict_xpaths=(unique=True), callback='parse', follow=True))
def parse(self, response):
for link in LinkExtractor(allow=(), deny=()).extract_links(response):
item = PoextractorItem()
item["item_name"] = response.xpath("//*[@id='mw-content-text']/span/span[1]/span[1]/text()[1]").extract()
item["flavor_text"] = response.xpath("//*[@id='mw-content-text']/span/span[1]/span[2]/span[3]/text()").extract()
yield item
xpath item_name
и flavor_text
работает хорошо, он был извлечен с помощью функции «проверки элемента» Chrome, но в правилах или в цикле parse
есть что-то, что не работает, так как это дебютный вывод:
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
2018-08-30 09:23:13 [scrapy.core.scraper] DEBUG: Scraped from <200 https://pathofexile.gamepedia.com/List_of_unique_accessories>
{'flavor_text': [], 'item_name': []}
Это продолжается некоторое время, а затем файл, содержащий имя и название, показывает, что:
flavor_text,item_name
,
,
,
,
,
,
И это продолжается более 300 строк.
Другая полезная информация: Не все ссылки на странице ведут на другую страницу, где присутствуют название и вкус элемента, поэтому можно найти пустые места, мой вопрос: почему они все белые? Разве он не следует по ссылкам на страницы игровых предметов?
Заранее спасибо за каждый ответ