【发布时间】:2018-08-30 07:49:30
【问题描述】:
我正在尝试使用scrapy 构建一个简单的蜘蛛,以导航从给定start_urls 开始的链接,并在页面内抓取两个项目。
目标:这是我的starting page。在这里你会看到一个护身符列表,我想输入每个护身符页面并在这些页面内,刮掉风味文本和项目名称。
我首先构建了一个工作原型,给一个护身符它会抓取他的数据,现在我想扩展它,这样它就可以同时为所有这些人做这件事,但我在寻找如何做到这一点上遇到了很多困难。
这是目前为止的代码:
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
item_name 和 flavor_text xpath 运行良好,它是使用 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 行。
其他有用信息:并非页面中的所有链接都指向另一个页面,其中存在项目名称和风味,因此可以找到空白点,我的问题是,为什么它们都是白色的?不是跟随游戏物品页面的链接吗?
提前感谢您的每一个回复
【问题讨论】:
标签: scrapy web-crawler html-parsing scrapy-spider