Wie verschrotten Sie eine Webseite mit unendlichen Blättern, wo die Antwort ist HTML/Text anstelle von JSON.Scraping Infinite Scrolling Seiten mit "mehr laden" -Taste mit Scrapy
Mein erster Versuch Regel und LinkExtractor wurde mit dem mir rund 80% der Arbeitsplätze erhält url
class JobsetSpider(CrawlSpider):
name = 'test'
allowed_domains = ['jobs.et']
start_urls = ['https://jobs.et/jobs/']
rules = (
Rule(LinkExtractor(allow='https://jobs.et/job/\d+/'), callback='parse_link'),
Rule(LinkExtractor(), follow=True),
)
def parse_link(self, response):
yield {
'url': response.url
}
Mein zweiter Versuch, das Beispiel von SCRAPING INFINITE SCROLLING PAGES zu verwenden war, aber die Antwort ist in text/html nicht json.
Wenn „Last mehr“ Schaltfläche geklickt, kann ich von Netzwerk auf Chrome Developer-Tool finden Sie in der Anfrage-URL
https://jobs.et/jobs/?searchId=1509738711.5142&action=search&page=2
während der „Seite“ Zahl zu erhöhen.
Meine Frage ist
- Wie kann ich die oben URL aus den Antwort-Header mit scrapy extrahieren, wenn die „Last mehr“ Schaltfläche geklickt wird
- Gibt es einen besseren Weg, um dieses Problem zu nähern?
ich dank sehen, würde ich nur die Seiten zu 'Seiten = Math.ceil bearbeiten (job_count/20,0) + 1 ', da die Dosis nicht das Ende enthält. – sgetachew