#python #web-scraping #scrapy #scrapy-spider
#python #очистка веб-страниц #scrapy
Вопрос:
Я использую следующий код, который я нашел в Интернете, для рекурсивного удаления ссылок на нескольких страницах. Предполагается, что он рекурсивно возвращает мне все ссылки, которые мне нужны на всех страницах. Но в итоге я получил максимум 100 ссылок. Любой совет будет полезен.
class MySpider(CrawlSpider):
name = "craigs"
allowed_domains = ["craigslist.org"]
start_urls = ["http://seattle.craigslist.org/search/jjj?is_parttime=1"]
rules = (Rule (SgmlLinkExtractor(allow=("indexd00.html", ),restrict_xpaths=('//a[@class="button next"]',))
, callback="parse_items", follow= True),
)
def parse_items(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.select('//span[@class="pl"]')
items = []
for titles in titles:
item = CraigslistSampleItem()
item ["title"] = titles.select("a/text()").extract()
item ["link"] = titles.select("a/@href").extract()
items.append(item)
return(items)
Ответ №1:
Просто исключите, allow=("indexd00.html", )
чтобы позволить ему проанализировать next
ссылку:
rules = (Rule(SgmlLinkExtractor(restrict_xpaths=('//a[@class="button next"]',)),
callback="parse_items", follow= True),)