0
背景
我对于通常使用Scrapy和webscraping非常陌生,我试图访问目标网页,填写目前的表单,提交该表单并从返回的页面中抓取数据成物品。完成这些步骤后,我想返回到目标网页,填写不同信息的表单,并将已返回的数据擦除,然后将这些数据附加到相同的项目。如何用不同的值多次提交一个表格?
我有什么
下面的代码填写目标表格,擦伤返回的页面信息,并把这些信息到项目。
import scrapy
from AirScraper.items import AirscraperItem
class airSpider(scrapy.Spider):
name = "airSpider"
start_urls = ["https://book.jetblue.com"]
origin = "MCO"
dest = "BOS"
dateDep = "2015-05-13"
dateRet = "2015-05-15"
def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formname = "searchForm",
formdata={'origin' : self.origin, 'destination' : self.dest, 'departureDate' : self.dateDep, 'returnDate' : self.dateRet},
callback=self.after_search
)
def after_search(self, response):
flights = response.xpath('//*[contains(@class, "flight-row no-mint")]')
for sel in flights:
#scrape data about target flight
yield item
我需要什么
一旦我从初一请求刮数据,我需要再返回到原来的表单页面,与同类数据填好,然后刮它的结果好。我只是不确定如何去告诉蜘蛛回到第一页并执行一系列不同的操作。