Как кажется, это часто происходит здесь, я довольно новичок в Python 2.7 и Scrapy. В нашем проекте мы соскабливаем дату веб-сайта, следуя некоторым ссылкам и более соскабливаниям и так далее. Все это прекрасно работает. Затем я обновил Scrapy.Паук не запускается после обновления Scrapy
Теперь, когда я запускаю мой паук, я получаю следующее сообщение:
Это не подходило в любом месте ранее (ни один из моих предыдущих сообщений об ошибках не смотрел ничего подобного). Теперь я запускаю scrapy 1.1.0 на Python 2.7. И ни один из пауков, которые ранее работали над этим проектом, не работает.
Я могу предоставить пример кода, если это необходимо, но мое (по общему признанию, ограниченное) знание Python подсказывает мне, что он даже не дошел до моего сценария до взрыва.
EDIT: ОК, так что этот код должен начинаться с первой страницы авторов для Дикин университета ученых на разговор, и пройти и скрести, сколько статей, которые они написали и замечания, которые они сделали.
import scrapy
from ltuconver.items import ConversationItem
from ltuconver.items import WebsitesItem
from ltuconver.items import PersonItem
from scrapy import Spider
from scrapy.selector import Selector
from scrapy.http import Request
import bs4
class ConversationSpider(scrapy.Spider):
name = "urls"
allowed_domains = ["theconversation.com"]
start_urls = [
'http://theconversation.com/institutions/deakin-university/authors']
#URL grabber
def parse(self, response):
requests = []
people = Selector(response).xpath('///*[@id="experts"]/ul[*]/li[*]')
for person in people:
item = WebsitesItem()
item['url'] = 'http://theconversation.com/'+str(person.xpath('a/@href').extract())[4:-2]
self.logger.info('parseURL = %s',item['url'])
requests.append(Request(url=item['url'], callback=self.parseMainPage))
soup = bs4.BeautifulSoup(response.body, 'html.parser')
try:
nexturl = 'https://theconversation.com'+soup.find('span',class_='next').find('a')['href']
requests.append(Request(url=nexturl))
except:
pass
return requests
#go to URLs are grab the info
def parseMainPage(self, response):
person = Selector(response)
item = PersonItem()
item['name'] = str(person.xpath('//*[@id="outer"]/header/div/div[2]/h1/text()').extract())[3:-2]
item['occupation'] = str(person.xpath('//*[@id="outer"]/div/div[1]/div[1]/text()').extract())[11:-15]
item['art_count'] = int(str(person.xpath('//*[@id="outer"]/header/div/div[3]/a[1]/h2/text()').extract())[3:-3])
item['com_count'] = int(str(person.xpath('//*[@id="outer"]/header/div/div[3]/a[2]/h2/text()').extract())[3:-3])
И в моих настройках, у меня есть:
BOT_NAME = 'ltuconver'
SPIDER_MODULES = ['ltuconver.spiders']
NEWSPIDER_MODULE = 'ltuconver.spiders'
DEPTH_LIMIT=1
Показать ваши файлы. Это типичная ошибка – Nabin