0
似乎经常发生在这里,我对Python 2.7和Scrapy相当陌生。我们的项目让我们抓取网站日期,跟随一些链接和更多的刮蹭,等等。这一切工作正常。然后我更新了Scrapy。更新Scrapy后,蜘蛛无法运行
这不来了以前的任何地方(没有我以前的错误消息看起来像这样的东西)。我现在在Python 2.7上运行scrapy 1.1.0。之前从事这个项目的蜘蛛都没有工作。
如果需要的话,我可以提供一些示例代码,但是我的Python(对于Python来说有限)的知识暗示了它在爆炸之前甚至没有获得我的脚本。
编辑: OK,所以这段代码是应该在有关对话迪肯大学的学者的第一作者页面开始,并办理刮去他们有多少写文章和评论他们所取得。
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