python爬取58同城的兼职信息
程序员文章站
2022-06-09 09:43:12
...
标题python爬取58同城的兼职信息
刚刚开始学习爬虫,一些 自己研究的小东西,爬取58同城上面的兼职信息放入Excel表格里,具体代码解释在代码里给出注释,下面给出完整代码:
#首先是导包
import time
#import urllib.request
from bs4 import BeautifulSoup
import requests
import xlwt
#下面是对表格的一些初始化,我个人实验没有的话也不会出错,但为了严谨还是加上
style=xlwt.XFStyle()
font=xlwt.Font()
font.name='SimSun'
style.font=font
#下面是表格的一些设置,增加5个标题
#其中运用到了for--enumerate 循环
w=xlwt.Workbook(encoding='UTF-8')
ws=w.add_sheet('sheet 1',cell_overwrite_ok=True)
fields=["职位","工作区域","公司名称","价格","结算"]
for i,v in enumerate(fields):
ws.write(0,i,v)
#下面这一模块为模拟浏览器访问url链接并且BeautifulSoup解析网页内容 这里使用lxml解析,当然也可用其他的
def get_html(url):
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"}
html =requests.get(url,headers=headers).text
bsObj =BeautifulSoup(html,'lxml')
return bsObj
#以下为核心语句
def download_p(pages):
number =1
row=1
#控制爬取页数
for page in range(pages):
url = 'https://qhd.58.com/xueshengjianzhi/%d/'%page
bsObj =get_html(url)
#print(bsObj.html)
#下面为根据分析网页结构通过find来完成对所需内容的查找
div_obj = bsObj.find_all('div',class_="item clearfix")
for index in range(len(div_obj)):
职位 =(div_obj[index].find_all('h2')[0].string)
工作区域 =(div_obj[index].find_all('p')[0].string)[5:]
公司名称=(div_obj[index].find_all('p',class_="company")[0].find_all('a')[0].text)[5:-3].strip()
价格 =div_obj[index].find_all('span',class_="qian")[0].text
结算 =div_obj[index].find_all('span',class_="fangshi")[0].text
time.sleep(0.4)####暂停0.4秒,控制速度
ws.write(row,0,职位)
ws.write(row,1,工作区域)
ws.write(row,2,公司名称)
ws.write(row,3,价格)
ws.write(row,4,结算)
row+=1
info ='已保存%d 条记录' %number + '\r'
print(info,end='')
number +=1
以下为主程序
if __name__ =="__main__":
pp=1##页数
s_time =time.time()
download_p(pp)
e_time =time.time()
print('\n')
print('用时:%f秒'%(e_time-s_time))
print('共'+str(pp)+'页')
w.save('秦皇岛兼职.xls')
需要注意的一点是,在爬取次数多的时候,可能会出现爬取不到内容,那可能是网站监测到爬虫需要输入验证码,复制url进入网站完成验证码即可
上一篇: Java集合之LinkedList详解
下一篇: 【笔试题目】网易2020秋招测试开发