一般而言,存入数据库中的数据都要进行清洗,但是在解析页面中对数据清洗比较麻烦而且杂乱,对于这种情况scrapy中的scrapy.loader可以很好的解决。
以下是一段数据清洗的代码
首先是解析页面:
import scrapy
from scrapy import Request
from scrpy_item.items import CountryItem,CountryItemLoader
class CitySpider(scrapy.Spider):
name = 'city'
allowed_domains = ['example.com']
def __init__(self):
self.urls = ['http://example.webscraping.com/places/default/view/China-47']
def start_requests(self):
for url_str in self.urls:
yield Request(url_str,callback=self.parse,dont_filter=True)
def parse(self, response):
item = CountryItemLoader(item=CountryItem(),response=response)
#添加相应字段的解析规则
item.add_css('title','tr#places_country__row td.w2p_fw::text')
#item.add_xpath
item.add_css('population','tr#places_population__row td.w2p_fw::text')
item.add_css(&#