采集招聘信息
本帖最后由 Dmail 于 2019-1-8 22:06 编辑额,还没学写出表格文件,也还没接触python数据库相关的内容,所以没有写保存采集信息或者入库的代码,只有控制台输出。最后再比一个心~引用库:
Selenium
爬的有点慢的感觉,优点应该是可以通用还比较简单,有兴趣的可以去看帮助文档:https://selenium-python-zh.readthedocs.io/en/latest/index.html
上面是调试输出的结果
下面是贴出代码
'''
文件名:L15.py
作者:小饭团
创建时间:2019年1月8日21:38:55
文件描述:采集招聘信息
'''
#-*- coding:UTF-8 -*-
#导入模块
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time
# 无界面模式
def 开启驱动_谷歌无界面模式():
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#64位系统的浏览器一定要加上下面的这句话
chrome_options.add_argument('--no-sandbox')
driverChrome = webdriver.Chrome(chrome_options=chrome_options)
'''
driverChrome.get('http://www.baidu.com')
print(driverChrome.title)
'''
return driverChrome
# 有界面的就简单了
def 开启驱动_谷歌有界面模式():
chrome_options = Options()
#64位系统的浏览器一定要加上下面的这句话
chrome_options.add_argument('--no-sandbox')
driverChrome = webdriver.Chrome(chrome_options=chrome_options)
#driverChrome.get('http://www.baidu.com')
#print(driverChrome.title)
return driverChrome
def pachong(url):
浏览器_驱动 = 开启驱动_谷歌有界面模式()
浏览器_驱动.get(url)
time.sleep(1)
页面总数 = 浏览器_驱动.find_elements_by_xpath('//*[@id="resultList"]/div/div/div/div/span').text
元素列表 = 浏览器_驱动.find_elements_by_class_name('el')
#点击翻页按钮的js代码
#js="document.querySelector('#resultList > div.dw_page > div > div > div > ul > li:nth-child(6) > a').click()"
count=0
for x in 元素列表:
t = (x.find_elements_by_class_name('t1'))
if(len(t)==1):
hrefText='链接'
if(count!=0):
hrefText=t.find_elements_by_tag_name('a').get_attribute('href')
t2=x.find_elements_by_class_name('t2')
t3=x.find_elements_by_class_name('t3')
t4=x.find_elements_by_class_name('t4')
print(t.text+'\t'+t2.text+'\t'+t3.text +'\t'+t4.text+'\t'+hrefText)
count+=1
for x in range(int(页面总数)-1):
#点击翻页按钮
#浏览器_驱动.execute_script(js)
下一页 = 浏览器_驱动.find_elements_by_class_name('bk')
下一页.click()
#给1秒加载时间
time.sleep(1)
元素列表 = 浏览器_驱动.find_elements_by_class_name('el')
for x in 元素列表:
t = (x.find_elements_by_class_name('t1'))
if(len(t)==1):
if(t.text!='职位名'):
hrefText=t.find_elements_by_tag_name('a').get_attribute('href')
t2=x.find_elements_by_class_name('t2')
t3=x.find_elements_by_class_name('t3')
t4=x.find_elements_by_class_name('t4')
print(t.text+'\t'+t2.text+'\t'+t3.text +'\t'+t4.text+'\t'+hrefText)
浏览器_驱动.quit()
def main():
pachong('https://search.51job.com/list/030200,000000,0000,00,9,99,%25E6%25B8%25B8%25E6%2588%258F%25E5%25AE%25A2%25E6%259C%258D,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=')
if __name__ == '__main__':
main() 没学过蟒蛇,不过感觉不错 招聘季节用,很不错~
页:
[1]