用scrapy写一段爬取boss直聘上海地区一个月内的职位信息的代码并导出excel表格
时间: 2024-01-24 08:20:30 浏览: 142
首先,需要安装 Scrapy 和 openpyxl 库。
然后,可以按照以下步骤编写代码:
1. 创建一个 Scrapy 项目并在其中创建一个爬虫。
2. 在爬虫中设置要爬取的网址和相关信息。
3. 使用 Scrapy 的 Item 和 Field 定义要爬取的字段。
4. 编写爬虫程序,解析页面并提取所需信息。
5. 使用 openpyxl 库将提取的数据导出为 Excel 表格。
下面是一个简单的示例代码,仅供参考:
```python
import scrapy
from scrapy.item import Item, Field
from openpyxl import Workbook
class JobItem(Item):
title = Field()
salary = Field()
company = Field()
location = Field()
experience = Field()
class BossSpider(scrapy.Spider):
name = "boss"
allowed_domains = ["www.zhipin.com"]
start_urls = ["https://www.zhipin.com/c101020100/?query=&ka=sel-city-101020100"]
def parse(self, response):
jobs = response.xpath('//div[@class="job-list"]/ul/li')
items = []
for job in jobs:
item = JobItem()
item["title"] = job.xpath('div/div[@class="job-title"]/text()').extract_first()
item["salary"] = job.xpath('div/div[@class="job-limit clearfix"]/span/text()').extract_first()
item["company"] = job.xpath('div/div[@class="company-text"]/h3/a/text()').extract_first()
item["location"] = job.xpath('div/div[@class="company-text"]/p/text()[1]').extract_first().strip()
item["experience"] = job.xpath('div/div[@class="company-text"]/p/text()[2]').extract_first().strip()
items.append(item)
return items
if __name__ == "__main__":
# Create an Excel workbook and add a worksheet
wb = Workbook()
ws = wb.active
ws.title = "Jobs"
# Run the spider and extract data
spider = BossSpider()
results = scrapy.crawler.CrawlerProcess({'USER_AGENT': 'Mozilla/5.0'})
jobs = results.crawl(spider)
jobs.addBoth(lambda _: reactor.stop())
reactor.run()
# Write data to Excel worksheet
row = 1
for item in items:
ws.cell(row=row, column=1, value=item["title"])
ws.cell(row=row, column=2, value=item["salary"])
ws.cell(row=row, column=3, value=item["company"])
ws.cell(row=row, column=4, value=item["location"])
ws.cell(row=row, column=5, value=item["experience"])
row += 1
# Save the workbook
wb.save("jobs.xlsx")
```
这段代码爬取了 Boss 直聘上海地区一个月内的职位信息,并将提取的数据导出为名为 "jobs.xlsx" 的 Excel 表格。
阅读全文