Я очищаю это Я очистил эту ссылку для разных полей по-разному, но как только я делаю это в проекте Scrapy, ничего не работает.
Это мой код файла паука:
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, поэтому упоминаю о любых ошибках.