我在抓取this时以不同的方式抓取了该链接,但在抓取项目中执行此操作后,一切都将无效。
这是我的蜘蛛文件代码:
import scrapy
from pubg.items import MemberItem
from scrapy.loader import ItemLoader
from scrapy.loader.processors import TakeFirst
class Pubg_spider(scrapy.Spider):
name="pubgspider"
start_urls = ["https://forums.pubg.com/leaderboard/"]
def parse(self, response):
job_list =response.css('div.row')
for job in job_list:
job_loader = ItemLoader(MemberItem(), selector=job)
job_loader.default_output_processor=TakeFirst()
job_loader.add_css('Upload_Date','time::text')
job_loader.add_css('Source','.ipsType_reset.ipsStreamItem_title.ipsContained.ipsType_break > a::attr(href)')
job_loader.add_css('Headline','.ipsType_reset.ipsStreamItem_title.ipsContained.ipsType_break > a::text')
job_loader.add_css('Content','.ipsType_richText.ipsContained.ipsType_medium > div > div::text')
job_loader.add_css('Vote','.cPopularItem_stats.ipsType_center::text')
yield job_loader.load_item()
我的管道文件如下所示:
class PubgPipeline(object):
def process_item(self, item, spider):
try:
item['Upload_Date']
except KeyError:
item['Upload_Date'] = 'N/A'
try:
item['Source']
except KeyError:
item['Source'] = 'N/A'
try:
item['Headline']
except KeyError:
item['Headline'] = 'N/A'
try:
item['Content']
item['Content']=''.join(c for c in item['Content'] if c not in '\r\t\n')
except KeyError:
item['Content'] = 'N/A'
try:
item['Vote']
item['Vote']=''.join(c for c in item['Vote'] if c not in '\r\t\n')
except KeyError:
item['Vote'] = 'N/A'
return item
我在scrapy和stackoverflow方面都是新手,所以请提任何错误。
答案 0 :(得分:0)
您可以使用Spider方法中的self.logger.debug(<string or variable>)
,或蜘蛛管线方法中的spider.logger.debug()
。
有关更多信息,请参见Debugging Spiders。