Verwenden von Scrapy, um die asp.net-Website mit Javascript-Schaltflächen und Ajax-Anforderungen zu scrappen
Ich habe versucht, ein Datum von der asp.net-Website zu entfernen. Die Startseite sollte die folgende sein:http://www.e3050.com/Items.aspx?cat=SON
Erstens möchte ich 50 Elemente pro Seite anzeigen (aus dem ausgewählten Element). Zweitens möchte ich durch die Seiten paginieren.
Ich habe den folgenden Code für 50 Artikel pro Seite ausprobiert, aber nicht funktioniert:
<code>start_urls = ["http://www.e3050.com/Items.aspx?cat=SON"] def parse(self, response): requests = [] hxs = HtmlXPathSelector(response) # Check if there's more than 1 page if len(hxs.select('//span[@id="ctl00_ctl00_ContentPlaceHolder1_ItemListPlaceHolder_lbl_PageSize"]/text()').extract()) > 0: # Get last page number last_page = hxs.select('//span[@id="ctl00_ctl00_ContentPlaceHolder1_ItemListPlaceHolder_lbl_PageSize"]/text()').extract()[0] i = 1 # preparing requests for each page while i < (int(last_page) / 5) + 1: requests.append(Request("http://www.e3050.com/Items.aspx?cat=SON", callback=self.parse_product)) i +=1 # posting form date (50 items and next page button) requests.append(FormRequest.from_response( response, formdata={'ctl00$ctl00$ContentPlaceHolder1$ItemListPlaceHolder$pagesddl':'50', '__EVENTTARGET':'ctl00$ctl00$ContentPlaceHolder1$ItemListPlaceHolder$pager1$ctl00$ctl01'}, callback=self.parse_product, dont_click=True ) ) for request in requests: yield request </code>