Мой скрипт прекрасно работает, когда я комментирую один фрагмент кода: возвращаем элементы .
Вот мой код, который меняется на http://example.com, поскольку, похоже, это то, что другие люди, возможно, сохранят для рассмотрения "легкими" проблемами легальности.
class Vfood(CrawlSpider):
name = "example.com"
allowed_domains = [ "example.com" ]
start_urls = [
"http://www.example.com/TV_Shows/Show/Episodes"
]
rules = (
Rule(SgmlLinkExtractor(allow=('example\.com', 'page='), restrict_xpaths = '//div[@class="paginator"]/
span[@id="next"]'), callback='parse'),
)
def parse(self, response):
hxs = HtmlXPathSelector(response)
items = []
countries = hxs.select('//div[@class="index-content"]')
tmpNextPage = hxs.select('//div[@class="paginator"]/span[@id="next"]/a/@href').extract()
for country in countries:
item = FoodItem()
countryName = country.select('.//h3/text()').extract()
item['country'] = countryName
print "Country Name: ", countryName
shows = country.select('.//div[@class="content1"]')
for show in shows.select('.//div'):
showLink = (show.select('.//h4/a/@href').extract()).pop()
showLocation = show.select('.//h4/a/text()').extract()
showText = show.select('.//p/text()').extract()
item['showURL'] = "http://www.travelchannel.com"+str(showLink)
item['showcity'] = showLocation
item['showtext'] = showText
item['showtext'] = showText
print "\t", showLink
print "\t", showLocation
print "\t", showText
print "\n"
items.append(item)
**#return items**
for NextPageLink in tmpNextPage:
m = re.search("Location", NextPageLink)
if m:
NextPage = NextPageLink
print "Next Page: ", NextPage
yield Request("http://www.example.com/"+NextPage, callback = self.parse)
else:
NextPage = 'None'
SPIDER = food()
Если я ОБНАРУЖИВАЮ # возвратные пункты, я получаю следующую ошибку:
yield Request("http://www.example.com/"+NextPage, callback = self.parse)
SyntaxError: 'return' with argument inside generator
Оставив комментарий, я не могу собрать данные в формате XML, но в результате операторов печати я вижу все, что должен, на экране.
моя команда для вывода xml:
scrapy crawl example.com --set FEED_URI=food.xml --set FEED_FORMAT=xml
Я получаю создание XML-файла, когда Я ОБЕСПЕЧИВАЮ строку возвращаемую строку выше, но скрипт останавливается и не будет переходить по ссылкам.