【发布时间】:2019-10-19 17:49:28
【问题描述】:
我抓取了几页没有错误,但爬虫没有生成任何输出。
parse_article 函数工作正常(我单独测试过),但与 parse 函数一起,它不再创建任何输出。有任何想法吗?
我正在通过命令行运行爬虫:scrapy crawl all_articles_from_one_page -o test_file.csv
import scrapy
from scrapping_538.items import Scrapping538Item
from scrapy.loader import ItemLoader
from scrapy.loader.processors import MapCompose
import datetime
import socket
class BasicSpider(scrapy.Spider):
name = 'all_articles_from_one_page'
allowed_domains = ['web']
start_urls = ('http://fivethirtyeight.com/features/',)
def parse(self, response):
# iterate through articles
article_divs = response.xpath('//*[@id="primary"]//div[contains(@id, "post")]')
for article in article_divs:
print('\n**********************************************')
article_link = article.xpath('.//h2/a/@href').extract()[0]
print('------article link: ' + str(article_link))
yield scrapy.Request(article_link, callback=self.parse_article)
def parse_article(self, response):
il = ItemLoader(item=Scrapping538Item(), response=response)
il.add_css('title', 'h1.article-title::text')
il.add_css('date', 'time.datetime::text')
il.add_css('author', '.author::text')
il.add_css('filed_under', '.term::text')
il.add_css('article_text', '.entry-content *::text')
il.add_value('url', response.url)
il.add_value('project', self.settings.get('BOT_NAME'))
il.add_value('spider', self.name)
il.add_value('server', socket.gethostname())
il.add_value('date_import', datetime.datetime.now())
return il.load_item()
【问题讨论】:
标签: python web-scraping scrapy web-crawler