Skip to content

smohsenmohseni/InsuranceInquiryCrawler

Repository files navigation

Insurance inquiry

Checked with mypy Code style: black Imports: isort Imports: isort

How to set up project:

install dependencies:

  • Production:
    pip install -r requirements/production.txt
  • Development:
    pip install -r requirements/local.txt

setup commands:

chmod +x ./scripts/setup

./scripts/setup

How to run project:

start

Examples:

curl -X GET "http://localhost:9080/basic?spider_name=sandbox&national_code=12313123"
curl -X GET "http://localhost:9080/supplemental?spider_name=sandbox&national_code=12313123"

Contribute Notes:

Spiders:

  • Spiders name format: {InsuranceName}InsuranceSpider

  • Spiders should inherit from: app.generics.GenericSpider

  • Spiders name automatically set as: {insurance_name}_insurance

  • Spiders should use start_requests function to start crawl

  • If spider parse method return None by default InvalidInsuranceItem return instead of None

  • By default all spider use httpcache, to disable cache for request function use app.helpers.decorators.disable_cache decorator

Items:

  • Items name format: {InsuranceName}InsuranceItem

Item loaders:

  • ItemLoaders name format: {InsuranceName}InsuranceItemLoader

Performance:

  • As here said css selector or xpath selector, it is better to use css selector in most case except need to solve a complex issue

  • As documented said selectors shortcut, shortcuts selectors ensure the response body is parsed only once, so our prefers is to use shortcuts selectors

Type checker:

  • static typing checks by MyPy

  • you are allowed to deep into one level for type hint