Dmail 发表于 2019-1-8 21:44

采集招聘信息

本帖最后由 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()

董大大。 发表于 2019-1-8 22:56

没学过蟒蛇,不过感觉不错

fuan047 发表于 2019-1-23 17:43

招聘季节用,很不错~
页: [1]
查看完整版本: 采集招聘信息