• 第四篇


    环境:python3    pycharm

    模块:requests,xlwt,urllib.request,re

    正常三步走:

    1.获取源代码

    2.匹配源代码,获得目标数据

    3.存储到文件中

    直接上代码,列举两种获取源代码的方式,存储3中文件的方式。自由选择即可。

    第一个标红部分引号里面的是网站url,太长就不贴上去了。查找方式:百度前程无忧官网,搜索python,点击页面2,将地址栏的地址粘贴到单引号里面。找到2.html部分,将2替换成{}即可。

    第二个标红部分得到数字,是想获得数据的页数,根据需求自己填。

    # import requests
    import re         #用于正则匹配
    # import xlwt     #excel表格需要用到
    import urllib.request
    
    #1.用requests模块获取网页html源码
    # def get_content(page):
    #     url = ''.format(page)
    #     html = requests.get(url).content.decode('gbk')
    #     return html
    
    #1.用urllib模块获取源代码
    def get_content(page):
        url = ''.format(page)      ------------1
        html = urllib.request.urlopen(url).read().decode('gbk')
        return html
    
    #2.获取职位,薪资,公司名称
    def get_Data(html):
        reg = re.compile(r'class="t1 ".*?<a target="_blank" title="(.*?)".*?<span class="t2"><a target="_blank" '
                         r'title="(.*?)".*?<span class="t3">(.*?)</span>.*?<span class="t4">(.*?)</span>.*?'
                         r'<span class="t5">(.*?)</span>',re.S)
        items = re.findall(reg,html)
        return items
    
    #3.存储到.csv文件中
    def save_file_csv(items):
        import csv
        csv_file = open('job.csv', 'w', newline='')
        writer = csv.writer(csv_file)
        writer.writerow(('职位名称','公司名称','公司地址','薪资','日期'))
        for item in items:
            writer.writerow(item)
    
    #3.存储到excel表格中
    # def save_file_excel(items):
    #     newTable = 'jobs.xls'
    #     wb = xlwt.Workbook(encoding='utf-8')#创建excel文件
    #     ws = wb.add_sheet('job')#去创建表
    #     headData = ['职位名称','公司名称','公司地址','薪资','日期']
    #     index = 1
    #     for colnum in range(5):
    #         ws.write(0,colnum,headData[colnum],xlwt.easyxf('font:bold on'))
    #     for item in items:
    #         for j in range(len(item)):
    #                 ws.write(index,j,item[j])
    #         index += 1
    #     wb.save(newTable)
    
    #3.存储到txt文件中
    # def save_file_txt(items):
    #     with open('job.txt','w') as f:
    #         for item in items:
    #             for j in range(len(item)):
    #                 f.write(item[j])
    #                 f.write('        ')
    #             f.write('
    ')
    
    
    if __name__ == '__main__':
        for i in range(1,3):     ---------------2
            html = get_content(i)
            items = get_Data(html)
            save_file_csv(items)
  • 相关阅读:
    Another mysql daemon already running with the same unix socket
    cloud maintenance of OpenNebula
    内核分析阅读笔记
    eucalyptus,openNebula云构建漫谈
    quotation
    Adress
    cos
    COS回应7大质疑
    linux内核地址mapping
    开源 免费 java CMS
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/9490835.html
Copyright © 2020-2023  润新知