Я новичок в scrapy, я очищаю сайт на основе работы, который состоит из позиций, то есть когда мы нажимаем на позицию, открывается новая страница, которая состоит из данных, которые мне нужны выборки.Отправка нескольких форм в 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 ссылку со значениями (Finded использования поджигателя) . Как подать несколько форм за раз, или как написать один метод, который циклически перебирает все ссылки заголовка задания, чтобы мы могли получать данные из каждой ссылки названия работы.
Также мне нужно разбивать страницы на все страницы, упомянутые выше, когда я нажимаю на странице 2, открывается страница, состоящая из одного и того же формата таблицы с разными должностями и т. Д., Как я могу разбивать страницы на эти страницы.
Мой код:
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'. – warvariuc
: Спасибо, что у меня есть концепция этого, так или иначе, я могу дать мне немного пример, чтобы я мог организовать его для более гибкого. –