Я новичок в scrapy, я очищаю сайт, основанный на работе, который состоит из позиций, т. Е. Когда мы нажимаем на позицию, открывается новая страница, которая состоит из данных, которые мне нужно получить.
Например, страница содержит таблицу следующего формата:
Job Title Full/Part Time Location/Affiliates
1. Accountant Full Time Mount Sinai Medical Center (Manhattan)
2. Accountant Full Time Mount Sinai Medical Center (Manhattan)
3. Admin Assistant Full Time Mount Sinai Hospital (Queens)
4. Administrative Assistant Full Time Mount Sinai Medical Center (Manhattan)
Page: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
Все названия вакансий, упомянутые выше, являются ссылками, сгенерированными javascript, мне нужно отправить все ссылки javascript со значениями (найденными с помощью firebug). Как отправить несколько форм за раз или как написать один метод, который перебирает все ссылки на названия вакансий. поэтому мы можем получить данные из каждой ссылки на должность.
Также мне нужно разбить на страницы все страницы, упомянутые выше, когда я нажимаю на страницу 2, открывается страница, состоящая из одного и того же формата таблицы с разными позициями работы и т. д., как я могу разбить эти страницы на страницы в scrapy.
Мой код:
class MountSinaiSpider(BaseSpider):
name = "mountsinai"
allowed_domains = ["mountsinaicss.igreentree.com"]
start_urls = [
"https://mountsinaicss.igreentree.com/css_external/CSSPage_SearchAndBrowseJobs.ASP?T=20120517011617&",
]
# This method is for submitting starting page with some values for clicking "Find Jobs"
def parse(self, response):
return [FormRequest.from_response(response,
formdata={ "Type":"CSS","SRCH":"Search Jobs","InitURL":"CSSPage_SearchAndBrowseJobs.ASP","RetColsQS":"Requisition.Key¤Requisition.JobTitle¤Requisition.fk_Code_Full_Part¤[Requisition.fk_Code_Full_Part]OLD.Description(sysfk_Code_Full_PartDesc)¤Requisition.fk_Code_Location¤[Requisition.fk_Code_Location]OLD.Description(sysfk_Code_LocationDesc)¤Requisition.fk_Code_Dept¤[Requisition.fk_Code_Dept]OLD.Description(sysfk_Code_DeptDesc)¤Requisition.Req¤","RetColsGR":"Requisition.Key¤Requisition.JobTitle¤Requisition.fk_Code_Full_Part¤[Requisition.fk_Code_Full_Part]OLD.Description(sysfk_Code_Full_PartDesc)¤Requisition.fk_Code_Location¤[Requisition.fk_Code_Location]OLD.Description(sysfk_Code_LocationDesc)¤Requisition.fk_Code_Dept¤[Requisition.fk_Code_Dept]OLD.Description(sysfk_Code_DeptDesc)¤Requisition.Req¤","ResultSort":"" },
callback=self.parse_main_list)]
def parse_main_list(self, response):
return [FormRequest.from_response(response,
formdata={ "Key":"","Type":"CSS","InitPage":"1","InitURL":"CSSPage_SearchAndBrowseJobs.ASP","SRCH":"earch Jobs","Search":"ISNULL(Requisition.DatePostedExternal, '12/31/9999')¤BETWEEN 1/1/1753 AND Today¥","RetColsQS":"Requisition.Key¤Requisition.JobTitle¤Requisition.fk_Code_Full_Part¤[Requisition.fk_Code_Full_Part]OLD.Description(sysfk_Code_Full_PartDesc)¤Requisition.fk_Code_Location¤[Requisition.fk_Code_Location]OLD.Description(sysfk_Code_LocationDesc)¤Requisition.fk_Code_Dept¤[Requisition.fk_Code_Dept]OLD.Description(sysfk_Code_DeptDesc)¤Requisition.Req¤","RetColsGR":"Requisition.Key¤Requisition.JobTitle¤Requisition.fk_Code_Full_Part¤[Requisition.fk_Code_Full_Part]OLD.Description(sysfk_Code_Full_PartDesc)¤Requisition.fk_Code_Location¤[Requisition.fk_Code_Location]OLD.Description(sysfk_Code_LocationDesc)¤Requisition.fk_Code_Dept¤[Requisition.fk_Code_Dept]OLD.Description(sysfk_Code_DeptDesc)¤Requisition.Req¤","ResultSort":"[sysfk_Code_Full_PartDesc]" },
dont_click = True,
callback=self.parse_fir_pag_urls)]
def parse_fir_pag_urls(self, response):
print response'
FormRequest
с данными, необходимыми для получения следующей страницы, и обратным вызовом к тому же методуparse
. 22.05.2012