继续爬取各个职位的详细信息
时间: 2024-03-14 11:46:34 浏览: 11
好的,如果您想进一步爬取每个职位的详细信息,可以使用Scrapy的Request对象和回调函数。
首先,在JobSpider类中添加一个新的回调函数parse_detail,用于爬取每个职位的详细信息:
```python
def parse_detail(self, response):
yield {
"job_description": response.css(".pos-ul").get(),
}
```
然后,在parse函数中使用Request对象和新的回调函数来爬取每个职位的详细信息:
```python
def parse(self, response):
for job in response.css(".contentpile__content__wrapper"):
job_url = job.css(".contentpile__content__wrapper__item__info__box__jobname__title::attr(href)").get()
yield response.follow(job_url, self.parse_detail)
yield {
"title": job.css(".contentpile__content__wrapper__item__info__box__jobname__title::text").get(),
"company": job.css(".contentpile__content__wrapper__item__info__box__cname__title::text").get(),
"location": job.css(".contentpile__content__wrapper__item__info__box__joblocation__wrapper::text").get(),
"salary": job.css(".contentpile__content__wrapper__item__info__box__jobdata__item__salary::text").get(),
"date": job.css(".contentpile__content__wrapper__item__info__box__jobdata__item__datetxt::text").get(),
}
next_page = response.css(".next-page::attr(href)").get()
if next_page is not None:
yield response.follow(next_page, self.parse)
```
在此示例中,我们首先使用response.follow方法跟进每个职位的链接,并将其传递给新的回调函数parse_detail。在parse_detail函数中,我们使用css选择器筛选job_description字段的值。
最后,我们在parse函数中使用yield语句输出每个职位的其他字段值,并在跟进职位链接之前调用parse_detail函数。
最后,您可以在命令行中运行以下命令来启动爬虫:
```
scrapy crawl job -o job.csv
```
此命令将爬取智联招聘网站上的所有招聘信息,并将结果保存在名为“job.csv”的文件中。