用python抓取求职网站信息

这篇文章介绍用python抓取求职网站信息

本次抓取的是智联招聘网站搜索“数据分析师”之后的信息。

python版本: python3.5。

我用的主要package是 beautifulsoup + requests+csv

另外,我将招聘内容的简单描述也抓取下来了。

文件输出到csv文件后,发现用excel打开时有些乱码,但用文件软件打开(如notepad++)是没有问题的。

为了能用excel打开时正确显示,我用pandas转换了以下,并添加上列名。转化完后,就可以正确显示了。关于用pandas转化,可以参考我的博客:

由于招聘内容的描述较多,最后将csv文件另存为excel文件,并调整下格式,以便于查看。

最后效果如下:

实现代码如下:信息爬取的代码如下:

# code based on python 3.x
# _*_ coding: utf-8 _*_
# __author: “lemon”
from bs4 import beautifulsoup
import requests
import csv
def download(url):
headers = {‘user-agent’: ‘mozilla/5.0 (windows nt 6.1; wow64; rv:51.0) gecko/20100101 firefox/51.0’}
req = requests.get(url, headers=headers)
return req.text
def get_content(html):
soup = beautifulsoup(html, ‘lxml’)
body = soup.body
data_main = body.find(‘p’, {‘class’: ‘newlist_list_content’})
tables = data_main.find_all(‘table’)
zw_list = []
for i,table in enumerate(tables):
if i == 0:
continue
temp = []
tds = table.find(‘tr’).find_all(‘td’)
zwmc = tds[0].find(‘a’).get_text()
zw_link = tds[0].find(‘a’).get(‘href’)
fkl = tds[1].find(‘span’).get_text()
gsmc = tds[2].find(‘a’).get_text()
zwyx = tds[3].get_text()
gzdd = tds[4].get_text()
gbsj = tds[5].find(‘span’).get_text()
tr_brief = table.find(‘tr’, {‘class’: ‘newlist_tr_detail’})
brief = tr_brief.find(‘li’, {‘class’: ‘newlist_deatil_last’}).get_text()
temp.append(zwmc)
temp.append(fkl)
temp.append(gsmc)
temp.append(zwyx)
temp.append(gzdd)
temp.append(gbsj)
temp.append(brief)
temp.append(zw_link)
zw_list.append(temp)
return zw_list
def write_data(data, name):
filename = name
with open(filename, ‘a’, newline=”, encoding=’utf-8′) as f:
f_csv = csv.writer(f)
f_csv.writerows(data)
if __name__ == ‘__main__’:
basic_url = ‘http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%e5%85%a8%e5%9b%bd&kw=%e6%95%b0%e6%8d%ae%e5%88%86%e6%9e%90%e5%b8%88&sm=0&p=’
number_list = list(range(90)) # total number of page is 90
for number in number_list:
num = number + 1
url = basic_url + str(num)
filename = ‘zhilian_da.csv’
html = download(url)
# print(html)
data = get_content(html)
# print(data)
print(‘start saving page:’, num)
write_data(data, filename)

用pandas转化的代码如下:

# code based on python 3.x
# _*_ coding: utf-8 _*_
# __author: “lemon”
import pandas as pd
df = pd.read_csv(‘zhilian_da.csv’, header=none)
df.columns = [‘职位名称’, ‘反馈率’, ‘公司名称’, ‘月薪’, ‘工作地点’,
‘发布日期’, ‘招聘简介’, ‘网页链接’]
# 将调整后的dataframe文件输出到新的csv文件
df.to_csv(‘zhilian_da_update.csv’, index=false)

以上就是用python抓取求职网站信息的详细内容,更多请关注 第一php社区 其它相关文章!

Posted in 未分类

发表评论