python 爬虫 入门

from urllib import request
from bs4 import BeautifulSoup
import  urllib
import csv
import re
import requests
# response=urllib2.urlopen("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=urllib2%20%E4%B8%8B%E8%BD%BD&step_word=&hs=0&pn=11&spn=0&di=7070645371&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1434312739%2C3840445185&os=3073416372%2C2350502475&simid=0%2C0&adpicid=0&lpn=0&ln=1946&fr=&fmq=1525947069394_R&fm=&ic=undefined&s=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=11&oriquery=&objurl=http%3A%2F%2Fimg.mukewang.com%2F5ab4a16e00016aac03000212.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bt455v_z%26e3Bv54AzdH3Fw6ptvsjAzdH3F1jpwtsfAzdH3Ft1AzdH3Fdcab0&gsm=0&rpstart=0&rpnum=0&islist=&querylist=")
#
# print  response.read()
def mkdir(path):
    # 引入模块
    import os
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符号
    path = path.rstrip("\\")
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        # 创建目录操作函数
        os.makedirs(path)
        print
        path + ' 创建成功'
        return True
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print
        path + ' 目录已存在'
        return False


response = request.urlopen("http://campus.sf-tech.com.cn/campusRecruitment/Jobs.html?p=22322191524")
html = response.read()
html = html.decode("utf-8")
print(html)
priHtml = BeautifulSoup(html,"lxml")

list=[]
content=priHtml.find_all("div", class_="job_detman")
print(content)
for oneInfo in content:
    print("\n"+"-------------------------"+"\n"+oneInfo.name)
    ontContent=oneInfo.find_all("a")
    for  pieceDetail in ontContent:
        details=pieceDetail.find_all("div", class_="td")
        clist=[]
        clist.append("")
        for detail in details:
            print(detail.string)
            chose = re.compile(r"[^(+方向+]+")
            choseValue=chose.findall(detail.string)
            if len(chose.findall(detail.string))>1:
                direction = chose.findall(detail.string)[1]
                print(")))))))))))))))"+direction)
                clist.insert(0,direction)
                del clist[1]
                clist.insert(1,chose.findall(detail.string)[0])
            else:
                clist.append(detail.string)
        list.append(clist)
print(list)

file = open('e://crawler//writer.csv', 'w', encoding='utf-8', newline='')
writer = csv.writer(file)
#writerow()方法是一行一行写入,
#writerows方法是一次写入多行
# writer.writerow(sortedValues)
for result in list:
    writer.writerow(result)

# 保存图片
response1 = request.urlopen("http://campus.sf-tech.com.cn/Staff/Default.html")

# 定义要创建的目录
mkpath = "e:\\crawler\\01369526\\"
# 调用函数
mkdir(mkpath)

html1 = response1.read()
html1 = html1.decode("utf-8")
print(html1)
bs1 = BeautifulSoup(html1,"lxml")
picResults=bs1.find_all("img")
for picResult in picResults:
    picUrl=picResult.get("src")
    print(picResult.get("src"))
    name=picUrl[(picUrl.rfind("/")):]
    print(name)
    pi1=picUrl.replace("..", "http://campus.sf-tech.com.cn")
    print(pi1)
    urllib.request.urlretrieve(pi1,"e:\\crawler\\01369526\\"+name)

源网页

  <div class="job_content">
                <div class="job_parents">
                    <div class="job_detail ">  
                        <div class="job_detman d6 gz wh sz xg">
                            <a href="Jobinner2.html">
                                <div class="td _td1">人力资源专员</div>
                                <div class="td _td2">职能类</div>
                                <div class="td _td3" style="line-height: 20px;padding: 6px 0;height: 40px;">理工科类、人力资源类、管理类、心理学、教育学相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、深圳、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner27.html">
                                <div class="td _td1">机器学习与人工智能工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机相关专业</div>
                                <div class="td _td4">50</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner11.html">
                                <div class="td _td1">大数据挖掘与分析工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">统计、生物统计、运筹、应用数学相专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner17.html">
                                <div class="td _td1">分布式系统研发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner0.html">
                                <div class="td _td1">CUDA高性能计算工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机、通信、自动化专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner14.html">
                                <div class="td _td1">产品经理(大数据方向)</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">数学、计算机相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner7.html">
                                <div class="td _td1">产品经理(AI方向)</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">理工科类专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner9.html">
                                <div class="td _td1">产品经理(产品运营方向)</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">理工科类专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner8.html">
                                <div class="td _td1">数据产品经理(GIS方向)</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">计算机、数学、GIS等相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳,武汉</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>                      
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner26.html">
                                <div class="td _td1">产品经理(信息安全方向)</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">信息安全、计算机相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner25.html">
                                <div class="td _td1">运筹优化算法工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">应用数学、运筹学专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner24.html">
                                <div class="td _td1">JAVA后端开发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机相关专业</div>
                                <div class="td _td4">30</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner23.html">
                                <div class="td _td1">Android开发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机相关专业</div>
                                <div class="td _td4">10</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner22.html">
                                <div class="td _td1">IOS开发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机相关专业</div>
                                <div class="td _td4">15</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d2 gz wh bj sz cs xa xg">
                            <a href="Jobinner21.html">
                                <div class="td _td1">测试工程师</div>
                                <div class="td _td2">测试、运维与信息安全类</div>
                                <div class="td _td3">计算机相关专业</div>
                                <div class="td _td4">10</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d2 gz wh bj sz cs xa xg">
                            <a href="Jobinner20.html">
                                <div class="td _td1">信息安全工程师</div>
                                <div class="td _td2">测试、运维与信息安全类</div>
                                <div class="td _td3">信息安全、计算机相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>                        
                        <div class="job_detman d4 gz wh bj sz cs xa xg">
                            <a href="Jobinner1.html">
                                <div class="td _td1">硬件测试工程师</div>
                                <div class="td _td2">智能硬件/无人机</div>
                                <div class="td _td3">通信、自动化、电子等相关专业应届生</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div> 
                        <div class="job_detman d4 gz wh bj sz cs xa xg">
                            <a href="Jobinner3.html">
                                <div class="td _td1">硬件设计工程师</div>
                                <div class="td _td2">智能硬件/无人机</div>
                                <div class="td _td3">电子、控制工程等相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner4.html">
                                <div class="td _td1">视觉/交互工程师</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">设计心理学、工业设计等相关专业</div>
                                <div class="td _td4">5</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div> 
                        <div class="job_detman d5 gz wh bj sz cs xa xg">
                            <a href="Jobinner13.html">
                                <div class="td _td1">中转场设计工程师</div>
                                <div class="td _td2">IE类</div>
                                <div class="td _td3" style="line-height: 20px;padding: 6px 0;height: 40px;">机械设计制造及其自动化、工业工程等相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d5 gz wh bj sz cs xa xg">
                            <a href="Jobinner15.html">
                                <div class="td _td1">自动化系统工程师</div>
                                <div class="td _td2">IE类</div>
                                <div class="td _td3" style="line-height: 20px;padding: 6px 0;height: 40px;">机械电子工程、机械工程及自动化等相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d5 gz wh bj sz cs xa xg">
                            <a href="Jobinner10.html">
                                <div class="td _td1">物流仿真设计工程师</div>
                                <div class="td _td2">IE类</div>
                                <div class="td _td3" style="line-height: 20px;padding: 6px 0;height: 40px;">机械设计制造及其自动化、工业工程、物流等相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d5 gz wh bj sz cs xa xg">
                            <a href="Jobinner18.html">
                                <div class="td _td1">物流系统电气控制工程师</div>
                                <div class="td _td2">IE类</div>
                                <div class="td _td3">机械电子工程及自动化等相关专业</div>
                                <div class="td _td4">1</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d5 gz wh bj sz cs xa xg">
                            <a href="Jobinner19.html">
                                <div class="td _td1">物流分拣系统IT工程师</div>
                                <div class="td _td2">IE类</div>
                                <div class="td _td3">IT相关专业</div>
                                <div class="td _td4">1</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">深圳</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner16.html">
                                <div class="td _td1">Web前端研发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机类、信息类相关专业</div>
                                <div class="td _td4">6</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner1_1.html">
                                <div class="td _td1">软件研发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机类、信息类相关专业</div>
                                <div class="td _td4">12</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner28.html">
                                <div class="td _td1">移动端研发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机类、信息类相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner29.html">
                                <div class="td _td1" style="line-height: 20px;padding: 6px 0;height: 40px;">机器学习/数据挖掘研发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机类、信息类相关专业</div>
                                <div class="td _td4">4</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner30.html">
                                <div class="td _td1">测试工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机类、信息类相关专业</div>
                                <div class="td _td4">6</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner31.html">
                                <div class="td _td1">运维工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机类、信息类相关专业</div>
                                <div class="td _td4">1</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>                       
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner5.html">
                                <div class="td _td1">产品设计师</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">计算机类、信息类、管理类相关专业</div>
                                <div class="td _td4">6</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner6.html">
                                <div class="td _td1">商业分析师</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3">统计学类、数学类、经济学类等相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>
                        <div class="job_detman d3 gz wh bj sz cs xa xg">
                            <a href="Jobinner12.html">
                                <div class="td _td1">数据产品经理</div>
                                <div class="td _td2">产品与设计类</div>
                                <div class="td _td3" style="line-height: 20px;padding: 6px 0;height: 40px;">计算机类、统计学类、数学类、经济学类等相关专业</div>
                                <div class="td _td4">2</div>
                                <div class="td _td5">广州、武汉、北京、深圳、长沙、西安、香港</div>
                                <div class="td _td6">北京</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>  

                        <!--
                            作者:[email protected]
                            时间:2018-03-16
                            描述:
                        -->
                        <div class="job_detman d1 gz wh bj sz cs xa xg">
                            <a href="Jobinner32_1.html">
                                <div class="td _td1">GIS开发工程师</div>
                                <div class="td _td2">研发类</div>
                                <div class="td _td3">计算机相关专业    </div>
                                <div class="td _td4">10</div>
                                <div class="td _td5">广州、武汉、深圳、香港</div>
                                <div class="td _td6">深圳、武汉</div>
                                <div style="clear:both;"></div>
                            </a>    
                        </div>


                    </div>
                </div>       
            </div>

要求:
1. 爬取招聘信息,生成CSV文本文件
1.1 爬取网页上的每一个具体招聘信息的:职位名称、职位分类、专业要求、招聘人数、可面试城市、工作城市
1.2 在职位名称中,部分职位会包含方向,如产品经理(AI方向),产品经理(信息安全方向)。请将方向通过正则表达式分离出来,然后单独生成新的一个字段为方向。
1.3 将结果以CSV表格形式输出。

  1. 爬取该页面下的所有照片
    2.1 获取http://…………./Staff/Default.html 目录下的所有图片
    2.2 在D盘目录下,用代码实现新建一个以自己工号命名的文件夹,如01212249爬虫学习
    2.3 将爬取的图片都存入该文件夹。

猜你喜欢

转载自blog.csdn.net/qq_31443653/article/details/80314138