700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python爬虫 爬取51job上有关大数据的招聘信息

Python爬虫 爬取51job上有关大数据的招聘信息

时间:2018-09-21 14:47:52

相关推荐

Python爬虫 爬取51job上有关大数据的招聘信息

Python爬虫,爬取51job上有关大数据的招聘信息

爬虫初学者,练手实战

最近在上数据收集课,分享一些代码。

分析所要爬取的网址

/list/000000,000000,0000,00,9,99,+关键词+,2,"+str(页数)+".html

导入selenium包

from selenium import webdriver#导入selenium包from lxml import etreefrom time import sleepimport xlwtimport requests

监测的规避

from selenium.webdriver import ChromeOptionsoption = ChromeOptions()option.add_experimental_option('excludeSwitches',['enable-automation'])

使用谷歌浏览器的方法实例化一个浏览器对象,传入谷歌浏览器驱动程序

brs=webdriver.Chrome(executable_path='C:\\Users\\v\\Desktop\\86chromedriver.exe')#执行此语句可以打开一个浏览器

伪装头部

如何获取自己电脑浏览器的伪装头部

打开浏览器按F12,或者在浏览器空白处右击,点击检查(以谷歌为例)

查找自己的伪装头部

headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.38 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.38"}

完整代码

from selenium import webdriver#导入selenium包from lxml import etreefrom time import sleepimport xlwt#写表格模块import requests#监测的规避from selenium.webdriver import ChromeOptionsoption = ChromeOptions()option.add_experimental_option('excludeSwitches',['enable-automation'])#使用谷歌浏览器的方法实例化一个浏览器对象,传入谷歌浏览器驱动程序brs=webdriver.Chrome(executable_path='C:\\Users\\v\\Desktop\\86chromedriver.exe')#执行此语句可以打开一个浏览器#伪装头部headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.38 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.38"}# response=requests.get(url=url,headers=headers)salary=[]city=[]time=[]job_name=[]company_name=[]p=0x=1workbook=xlwt.Workbook('utf-8')#写入表格编码方式mysheet=workbook.add_sheet(sheetname='bigdata')for i in range(1,65):#爬取1-65页url="/list/000000,000000,0000,00,9,99,数据分析,2,"+str(i)+".html"brs.get(url)page_text=brs.page_source#通过这个属性获取页面源码数据html=etree.HTML(page_text)# brs.find_element_by_xpath('//*[@id="keywordInput"]').send_keys('大数据')# brs.find_element_by_xpath('//*[@id="search_btn"]').click()page_text=brs.page_source#通过这个属性获取页面源码数据html=etree.HTML(page_text)brs.execute_script("window.scrollTo(0, document.body.scrollHeight);")#把页面下拉到底部job_name=job_name+html.xpath('//div[@class="e"]/a/p/span/@title')time=time+html.xpath('//div[@class="e"]/a/p/span[@class="time"]/text()')city=city+html.xpath('//div[@class="e"]/a/p[2]/span[2]/text()') company_name=company_name+html.xpath('//div[@class="er"]/a/text()')salary=salary+html.xpath('//div[@class="e"]/a/p/span[@class="sal"]/text()')sleep(1)#睡眠1秒,防止被网站监测到for x in range(1,51):element = brs.find_element_by_xpath('//div[@class="j_joblist"]/div[{}]/a'.format(x))brs.execute_script("arguments[0].click();", element)all_h=brs.window_handlesbrs.switch_to.window(all_h[1])html =etree.HTML(brs.page_source)describe=html.xpath('//div[@class="tCompany_main"]//div[@class="bmsg job_msg inbox"]/p/text()')mysheet.write(p,5,describe)p=p+1print(describe)brs.close()brs.switch_to.window(all_h[0]) #把列表中的数据写入表格for i in range(len(company_name)):mysheet.write(i,0,company_name[i])for i in range(len(job_name)):mysheet.write(i,1,job_name[i])for i in range(len(city)):mysheet.write(i,2,city[i])for i in range(len(salary)):mysheet.write(i,3,salary[i])for i in range(len(time)):mysheet.write(i,4,time[i])sleep(5)#停留5秒关闭浏览器brs.quit()#关闭浏览器workbook.save('bigdata.xlsx')#保存表格

运行结果

python代码运行结果:

表格内容:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。