【现学现卖】python小爬虫

1.给小表弟汇总一个院校列表,想来想去可以写一个小爬虫爬下来方便些,所以就看了看怎么用python写,到了基本能用的程度,没有什么特别的技巧,大多都是百度搜的,遇事不决问百度啦

2.基本流程就是:

  用request爬取一个页面之后用BeautifulSoup4对爬到的页面进行处理,

  然后需要的东西进行预处理之后存到桌面上的.txt文件里,

  之后再对.txt文件里的字符串进行分割,

  最后把数据存到excel表里

3.准备:需要下载安装requests库,以及BeautifulSoup4的库,还有xlsxwriter库,相关安装方法网上一大堆

4.爬取页面的网页源代码:

5.将爬取的数据存到.txt文件中:

from bs4 import BeautifulSoup
import requests
import os

def get_soup():
    r = requests.get("http://www.eol.cn/html/g/gxmd/bj/", timeout=30)
    # 判断网络链接的状态,连接错误将产生一个异常
    #print(r.status_code)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text,features="html.parser")
    return soup;

#删除前几个元素
def del_previous_ele(full_list):
    for i in range(8):
        full_list.remove(full_list[0])
    return full_list;

#获取学校名称,学校编号,主管部门,办学层次
def select_school_ele(full_list):
    school_list = []
    for i in range(full_list.__len__()):
        //这里是对获取的所有学校列表进行遍历,取出需要的数据
        if (i % 7) == 1 or (i % 7) == 2 or (i % 7) == 3 or (i%7) == 5 :
            school_list.append(full_list[i].string+"\t")
            //获取到一个学校完整的信息之后就在后面换行
            if (i%7) == 5:
                school_list.append(" \n")
        else:
            pass

    return school_list;
#将数据写入文件
def createFile(txt):
    file = open(‘C:\\Users\\XXXXXXXXXXXXXXX\\Desktop\\school.txt‘, ‘w‘)
    file.writelines(txt)
    file.close();
    print("写入成功")

if __name__ == "__main__":
    soup = get_soup()
    full_list = del_previous_ele(soup.find_all(align="center"))
    school_list = select_school_ele(full_list)
    createFile(school_list)

6.对school.txt文件进行处理,处理完了存到excel文件里

import os
import xlsxwriter
def get_file(path,mode_):
    list = "";
    file = open(path,mode_)
    list = file.read()
    file.close()

    return list

def write_excel(list):
    workbook = xlsxwriter.Workbook("C:\\Users\\XXXXXXXXXXXXXXXXX\\Desktop\\school.xlsx")
    worksheet = workbook.add_worksheet("school")
    #5个属性为一组
    list_5_item = list.split("\n")
   # print(len(list_5_item))
    for i in range(len(list_5_item)):
        specific_school = list_5_item[i].split("\t")
        print(len(specific_school))
        for j in range(len(specific_school)):
            worksheet.write( i , j , specific_school[j])

if __name__ == "__main__":
    list = get_file(‘C:\\Users\\XXXXXXXXXXXXXXXXXXXXXXXXXXXx\\Desktop\\new.txt‘, ‘r‘)
    write_excel(list)

7.完成结果:

文本文件:

school.xlsx文件:

8.到这里就结束啦,因为刚接触写爬虫,所以有些地方难免写的不好,不喜勿喷啦

原文地址:https://www.cnblogs.com/LinKinSJ/p/9501168.html

时间: 2024-10-11 15:58:13

【现学现卖】python小爬虫的相关文章

现学现用-我的第二个小小小私活

前言 写这篇文章的目的是记录下接私活的经历和分享自己从私活中学到的知识. 对于我准备讲的第二个私活,我想提下之前做的第一个私活. 第一个 一个大学同学,想找我一起帮他亲戚做个小网站,说是几百块钱,我带着一颗激动的心就开始做了,做完了他亲戚提的需求后,我就将网站发给他们,他们觉得还行,然后我问了是否还需要做其他的,后面就没有回应了,是的,没有回应了......之前说的几百块钱并没有兑现...就这样结束了,花了两周业余空闲时间做完了. 下面是打过码的截图: 第二个 对于第二个小小小私活,接到这个活的

Python小爬虫-自动下载三亿文库文档

新手学python,写了一个抓取网页后自动下载文档的脚本,和大家分享. 首先我们打开三亿文库下载栏目的网址,比如专业资料(IT/计算机/互联网)http://3y.uu456.com/bl-197?od=1&pn=0,可以观察到,链接中pn=后面的数字就是对应的页码,所以一会我们会用iurl = 'http://3y.uu456.com/bl-197?od=1&pn=',后面加上页码来抓取网页. 一般网页会用1,2,3...不过机智的三亿文库用0,25,50...来表示,所以我们在拼接ur

Python小爬虫——抓取豆瓣电影Top250数据

写LeetCode太累了,偶尔练习一下Python,写个小爬虫玩一玩~ 确定URL格式 先找到豆瓣电影TOP250任意一页URL地址的格式,如第一页为:https://movie.douban.com/top250?start=0&filter=,分析该地址: https:// 代表资源传输协议使用https协议: movie.douban.com/top250 是豆瓣的二级域名,指向豆瓣服务器: /top250 是服务器的某个资源: start=0&filter= 是该URL的两个参数,

抓取百度贴吧python小爬虫 (2015最新版)

网上好多抓取贴吧的小爬虫都失效了,原因是百度贴吧的编码格式变了,或者是html代码变了,像这种简单的读取源代码的爬虫,只要网页源代码改变之后就得重新修改. 请诸位大牛指点. # -*- coding:utf8 -*- """ 程序就是读取网页的源代码,如果想获取相应的内容就找到其特定的格式,再利用正则表达式来获取. """ import string import urllib2 import re class html_Tool: #为了提取文

现学现卖的一个“快递查询“的小程序开发

最近微信小程序是炒的如火如荼,各种热门, 正好赶上这个热潮,这几天先把小程序技术文档看了个遍,结合教程手写了一个案例.今天写了一个快递查询的小demo,大致分为三步 产品需求,准备api,代码编写. 第一步:产品需求,我们需要实现如下图的一个功能,在文本框输入快递单号,点击查询,下面出来我们需要的快递信息 第二步:准备 我们先找一个快递的api接口,通过http://apistore.baidu.com/我们可以看到很多的api,我们找一个快递查询的 我们可以看到有接口地址,和一些参数.做好这个

Python爬虫:现学现用Xpath爬取豆瓣音乐

爬虫的抓取方式有好几种,正则表达式,Lxml(xpath)与Beautiful,我在网上查了一下资料,了解到三者之间的使用难度与性能 三种爬虫方式的对比. 抓取方式 性能 使用难度 正则表达式 快 困难 Lxml 快 简单 BeautifulSoup 慢 简单 这样一比较我我选择了Lxml(xpath)的方式了,虽然有三种方式,但肯定是要选择最好的方式来爬虫,这个道理大家都懂,另外有兴趣的朋友也可以去了解另外两种爬虫方式! 好了现在来讲讲xpath 由于Xpath属于lxml模块,所以首先需要安

Python 小爬虫流程总结

接触Python3一个月了,在此分享一下知识点,也算是温故而知新了. 接触python之前是做前端的.一直希望接触面能深一点.因工作需求开始学python,几乎做的都是爬虫..第一个demo就是爬取X博数据,X博的API我在这就不吐槽了 .用过的估计都晓得. 好了 .下面进入正题,,一个小demo的开始与结束 . 1.首先对于像我一样0基础的,推荐几个网址: 廖雪峰的教程从安装到基本语法.模块安装等等基础都不简单易懂.这里就不赘述了 (1).http://www.liaoxuefeng.com/

Django学习笔记(现学现写,实时更新)

说明:我是先上手做一些简单的例子,然后在尝试的过程中理解Django的原理,笔记也是按这个思路来的. 一.Django结构与基本文件介绍 1. django-admin.py 工程管理工具,主要用于创建项目和app等. 例:django-admin.py startproject project_example 会创建一个名为project_example的工程,目录结构如下: |-- project_example|    |--project_example|        |-- __in

python 小爬虫的各种总结(一)

python真是一门非常优秀的语言,非常适合初学者,也非常适合写一些原型程序.这篇文章总结了下以前做的各种和网络相关的东西:自动登录.提取信息.模拟点击.模拟上传.取号等等,多亏了python才使世界变得那么美好! 本次我们主要是模拟浏览器下载网页,学会了下载网页其他的下载图片什么的都是一样的套路.先上代码: #-*-coding:utf-8-*- ''' Created on 2014-3-4 @author: KL ''' import urllib2 import pyquery impo