
大数据项目开发实践教程.pdf
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
《大数据项目开发实践教程》是一本专注于指导读者掌握大数据项目开发的技术书籍。书中通过丰富的案例解析和实战操作,帮助读者深入理解Hadoop、Spark等核心技术框架,并应用于实际工作场景中,助力快速成长为专业的大数据开发者。
大数据项目开发实训
**实训要求**
使用Python编写爬虫程序从招聘网站上抓取数据,并将这些数据存储到MongoDB数据库中;对存入的数据进行清洗后进行数据分析,利用Flume采集日志并将其传输至HDFS中,再通过Hive进行分析。最后将Hive的分析结果用Sqoop技术导入MySQL数据库展示出来,并完成最终的结果可视化。
**爬虫搭建**
本次选取的目标网站是前程无忧网(51job.com),采用Scrapy框架来构建爬虫程序。以下为代码示例:
```python
# -*- coding: utf-8 -*-
import scrapy
from wuyou.items import WuyouItem # 引入自定义的item类
import re
import urllib.parse
class WuyouSpider(scrapy.Spider):
name = wuyou # 定义爬虫名称为“Wuyou”
allowed_domains = [51job.com] # 允许访问前程无忧网站域名
start_urls = [
https://search.51job.com/list/000000,000000,0000,9,99,%2Bweb%2B,2,1.html?lang=c&stype=&postchannel=99&workyear=99&cotype=99°reefrom= 99 &jobterm= 99 &companysize= 99 &providesalary= 0 &lonlat =0%2C0&radius=-1&ord_field =0 &confirmdate = 30 &fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=,
]
def parse(self, response):
items = []
# 爬取字段:职位名称、薪资水平、招聘单位、工作地点、工作经验、学历要求
# 工作内容(岗位职责)、任职要求(技能要求)
for job in response.xpath(//div[@class=dw_table]//div[contains(@class, el) and contains(@class,tBody)]):
item = WuyouItem()
position_name = job.xpath(.//a/@title).extract_first() # 职位名称
salary_level = job.xpath(./span[1]/text()).get() # 薪资水平
company_info = job.xpath(.//span[contains(@class,t2)]/a/text()).get()
if not company_info:
item[company_name] =
item[location] =
else:
item[company_name],item[location] = re.split(r \| , company_info, maxsplit=1)
experience_requirement = job.xpath(./span[2]/text()).get() # 工作经验
education_level = job.xpath(.//div[contains(@class,t3)]/text()).extract_first().strip()
position_description = .join(job.xpath(.//div[@class=job_msg]/p/text()).extract()) # 职位描述
skill_requirements = .join(job.css(span[class*=sp4]::text).getall()).replace(\xa0, ).strip() # 技能要求
item[position_name] = position_name,
item[salary_level] = salary_level,
item[company_name],item[location] = company_info.split( | ) if company_info else (,),
item[experience_requirement] = experience_requirement
item[education_level] = education_level
item[position_description] = position_description
item[skill_requirements] = skill_requirements
items.append(item)
return items
```
注意:以上代码仅供参考,实际使用时需要根据网站的具体结构和需求进行调整。
全部评论 (0)


