美文网首页程序员PythonPython
Python爬虫自动化,帮小姐姐解放双手!

Python爬虫自动化,帮小姐姐解放双手!

作者: 爱是一道光_e5f7 | 来源:发表于2021-01-08 14:21 被阅读0次

项目来源:

漂亮学姐因为工作需要,得根据已有的学校名单,采集它们的英文名称,描述,简称有的话也带上。共有 2740 条学校名称数据,一条条去搜索得到结果,然后复制粘贴到表格里,一天下来估计人都傻了。

花几分钟写了个爬虫小程序,帮助小姐姐解放了双手,成功表现了一波,学姐一阵夸奖,还请我喝了一杯美式咖啡,美滋滋。

分析问题

共有 2740 条学校名称数据

在百度百科中搜索清华大学看看

查看网页源代码,可以惊喜的发现,简要描述的数据羡显目地躺在开头!

经过分析可以发现,网页结构简单,可以通过构造URL请求,获取网页源码,然后从中提取我们想要的数据即可

爬虫代码

当当当,下面该我们的爬虫上场了

导入需要用到的库

import requests

import pandas as pd

from random import choice

from lxml import etree

import openpyxl

import logging

基本配置参数

# 日志输出的基本配置

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s')

wb = openpyxl.Workbook()    # 创建工作簿对象

sheet = wb.active    # 获取活动的工作表

sheet.append(['学校名称', '中文简称', '学校名称(英文)', '描述', '百度百科链接'])  # 添加第一行列名

# 产生随机请求头用于切换

user_agent = [

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",

......

"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"

    ]

读取数据、爬取网页

# 读取已有的学校名称数据

df = pd.read_excel('学校名称.xlsx')['学校名称']

items = df.values

# 遍历  获取每所学校名称

for item in items:

    try:

        # 随机生成请求头

        headers = {

'User-Agent':choice(user_agent)

        }

        # 构造url

        url = f'https://baike.baidu.com/item/{item}'

        # 发送请求  获取响应

        rep = requests.get(url, headers=headers)

        # Xpath解析提取数据

        html = etree.HTML(rep.text)

        # 描述

        description = ''.join(html.xpath('/html/head/meta[4]/@content'))

        # 外文名

        en_name = ','.join(html.xpath('//dl[@class="basicInfo-block basicInfo-left"]/dd[2]/text()')).strip()

        # 中文简称  有的话  是在dd[3]标签下

        simple_name = ''.join(html.xpath('//dl[@class="basicInfo-block basicInfo-left"]/dd[3]/text()')).strip()

        sheet.append([item, simple_name, en_name, url])

        logging.info([item, simple_name, en_name, description, url])

    except Exception as e:

        logging.info(e.args)

        pass

# 保存数据

wb.save('成果.xlsx')

运行效果如下:

有 2740 页的数据需要请求爬取,为了提高爬取效率,可以使用多线程。

近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地

相关文章

  • Python爬虫自动化,帮小姐姐解放双手!

    项目来源: 漂亮学姐因为工作需要,得根据已有的学校名单,采集它们的英文名称,描述,简称有的话也带上。共有 2740...

  • 微软开源最强Python自动化神器Playwright!不用写一

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规...

  • 初识python

    python作用 自动化运维、自动化测试、大数据分析、爬虫、Web... Python的种类 CpythonPyt...

  • Python爬虫框架Scrapy入门与实践之爬取豆瓣电影Top2

    前言 爬虫就是请求网站并提取数据的自动化程序,其中请求,提取,自动化是爬虫的关键。Python作为一款出色的胶水语...

  • 爬虫与自动化实战,帮助小姐姐刷抖音完全解放掉双手

    1. 场景 你是否在为洗碗时,刷抖音需要滑动屏幕,导致屏幕沾上水而烦扰? 你是否为在吃饭时刷抖音,由于手机屏幕过大...

  • Python学习

    python爬虫原理 1、什么是爬虫 爬虫本质上就是一段请求网站并提取数据的自动化程序。可以抓取网络上网页文本、图...

  • 解放双手

    我发现,地铁不拥挤的时候喜欢不去扶扶手的人,和地铁挤满的时候依然不扶扶手的人是一群人。 不拥挤的时候不扶扶...

  • 解放双手

    这两天,一直很心烦,又要上公开课又要知识大比武,弄得我有些焦虑。怕两头都做不好。 发现自己有时候真的...

  • 解放双手

    今天的主题是:解放双手。 解放双手:就是人类开始自立行走。人类开始直立行走后,释放了双手,人类就可以用双手来劳动,...

  • 解放双手

    坐在副驾的我,被暖暖的太阳照着,眯起眼睛听着音乐,今天,"我终于实现了解放双手的自由!"心中暗在窃喜中,偷偷瞥了眼...

网友评论

    本文标题:Python爬虫自动化,帮小姐姐解放双手!

    本文链接:https://www.haomeiwen.com/subject/hzffaktx.html