Python爬虫大作业+数据可视化分析(抓取python职位)
以下是一个简化的Python爬虫代码示例,用于抓取Python相关职位信息,并使用Pandas进行数据可视化分析。
import requests
import pandas as pd
from bs4 import BeautifulSoup
# 发送HTTP请求,获取网页内容
def get_page_content(url):
try:
response = requests.get(url)
if response.status_code == 200:
return response.text
except requests.RequestException:
return None
# 解析网页,提取职位信息
def parse_jobs(html_content):
jobs = []
soup = BeautifulSoup(html_content, 'html.parser')
for job_element in soup.find_all('div', class_='job-listing'):
job_info = {
'title': job_element.find('a', class_='job-title').text.strip(),
'company': job_element.find('div', class_='company-name').text.strip(),
'location': job_element.find('div', class_='location').text.strip(),
'summary': job_element.find('div', class_='summary').text.strip()
}
jobs.append(job_info)
return jobs
# 保存数据到CSV文件
def save_to_csv(data, filename):
df = pd.DataFrame(data)
df.to_csv(filename, index=False)
# 主函数
def main():
base_url = 'https://www.example.com/python-jobs?page='
jobs_data = []
for page in range(1, 5): # 假设我们只抓取前4页数据
url = base_url + str(page)
html_content = get_page_content(url)
if html_content:
jobs_data.extend(parse_jobs(html_content))
# 保存数据到CSV文件
save_to_csv(jobs_data, 'python_jobs.csv')
# 加载CSV数据到Pandas DataFrame
df = pd.read_csv('python_jobs.csv')
# 数据可视化分析,例如:条形图展示不同城市的职位数量
locations = df['location'].value_counts()
locations.plot(kind='bar', title='Python Job Locations')
plt.xticks(rotation=90)
plt.show()
if __name__ == '__main__':
main()
这段代码首先定义了一个基础的爬虫框架,包括请求网页内容、解析网页和保存数据到CSV文件的函数。然后,在main函数中,它循环抓取指定网站的前4页Python相关职位信息,并使用Pandas进行数据的可视化分析,比如通过条形图展示不同城市的职位数量分布。
注意:由于爬取网站可能有变化,实际使用时需要替换为具体的网站URL和相应的HTML解析方式。此外,对于实际工作中的爬虫项目,应始终遵守网站的爬虫政策,并合理使用,避免对网站造成不必要的压力。
评论已关闭