Когда я запускаю этот код в терминале, он проходит только через первую страницу.Он не переходит по другим ссылкам с начального URL.Я не очень хорошо разбираюсь в регулярных выражениях, так ли это?Я следовал учебнику на YouTube, который почти идентичен моему коду, и он работал отлично.Так что я не уверен, в чем проблема для этого.
from scrapy.selector import Selector
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from ScrapBooks.items import ScrapbooksItem
class AlibrisspiderSpider(CrawlSpider):
name = "as"
allowed_domains = ["alibris.com"]
start_urls = ["https://www.alibris.com/search/books/subject/mystery/"]
rules = ( Rule(SgmlLinkExtractor(allow = "www\.alibris\.com.*"),
callback = "parse_item", follow = True), )
def parse_item(self, response):
sel = Selector(response)
item = ScrapbooksItem()
item['URL'] = response.request.url
item['bookLink'] = sel.xpath('//*[@id="selected-works"]/ul/li/a').extract()
self.log("********* Inside Parse Method ********")
return item
Ниже приведены мои items.py класс
import scrapy
from scrapy.item import Item, Field
class ScrapbooksItem(Item):
# define the fields for your item here like:
# name = scrapy.Field()
URL = Field()
bookLink = Field()