【考公人的福利】Python爬取中公官网资料

  • 一、简述
  • 二、代码
  • 三、运行结果

一、简述

写这个代码的目的是能够高效率提取中公官网的资料,例如:申论、行测、面试热点、公安基础知识等。大家可以根据个人需要进行爬取。

二、代码

# -*- coding = utf-8 -*-
# @Time : 2021/2/9 18:00
# @Author : 陈良兴
# @File : 申论范文.py
# @Software : PyCharmimport requests
from bs4 import BeautifulSoup                       # 网页解析,获取数据
import time                                         # 时间处理
import re                                           # 正则匹配
import xlwt                                         # 进行excel操作def main():datalist = []                                   # 保存文章标题和内容theme_list = {'4006': '申论热点', '4005': '申论范文', '4007': '申论技巧', '3994': '全部申论','3993': '行测技巧', '3995': '面试技巧', '4011': '面试热点', '4012': '公安基础知识', '3997': '综合指导'}theme = input("请选择爬取内容代码(申论热点:4006、申论范文:4005、申论技巧:4007、全部申论:3994、行测技巧:3993、面试技巧:3995、面试热点:4011、公安基础知识:4012、综合指导:3997):")page = input("请输入需要爬取的页数:")URL_list = get_pages_url(theme, int(page))              # 获取每个文章的URLsavepath = r'.\\' + theme_list[theme] + '.xls'for i in range(len(URL_list)):print("正在获取第{}篇范文".format(i+1))datalist.extend(get_Data(URL_list[i]))time.sleep(0.5)i += 1# print(datalist)saveData(datalist, savepath, theme_list[theme], len(datalist))def askURL(url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}response = requests.get(url=url, headers=headers)html = response.content.decode("utf-8")bs = BeautifulSoup(html, "html.parser")  # 解析html,提取数据return bs# 获取每一页的全部url
def get_pages_url(theme, page):data = []for num in range(0, page, 1):url = 'http://www.offcn.com/gwy/ziliao/{}/{}.html'.format(theme, num+1)print("正在提取第" + str(num+1) + "页")bs = askURL(url)time.sleep(0.5)list01 = str(bs.find_all('ul', class_="lh_newBobotm02"))pat_link = r'<a href="(.*?)" target="_blank" title=.*?'link = re.findall(pat_link, list01, re.S)link_list = str(link).strip("[").strip("]").replace("'", "").split(",")data.extend(link_list)return data# 解析没一个URL,获取数据
def get_Data(url):articleData = []bs = askURL(url)title_MsgStr = bs.select("h1")title = ""for title_str in title_MsgStr:title = title + title_str.textarticleData.append(title)content = ""list01 = str(bs.find_all('div', class_="offcn_shocont"))pat_link = r'<p>(.*?)</p>'link = re.findall(pat_link, list01, re.S)for i in range(len(link)):content = content + str(link[i]).replace("<strong>", "").replace("</strong>", "").replace('<span style="font-size: 12px;">', "")i += 1articleData.append(str(content))return articleData# 保存数据
def saveData(datalist, savepath, name, sum):m = 0print("save......")book = xlwt.Workbook(encoding="utf-8", style_compression=0)               # 创建workbook对象sheet = book.add_sheet(name, cell_overwrite_ok=True)        # 创建工作表col = ("标题", "内容")for i in range(0, 2):sheet.write(0, i, col[i])                               # 列名for j in range(int(sum/2)):print("第%d条" % (j+1))for k in range(0, 2):if (m+1)/2 == 0:j += 1sheet.write(j+1, k, datalist[m])m += 1book.save(savepath)                                      # 保存数据表if __name__ == '__main__':main()print("爬取完毕!!!")

三、运行结果

1、运行程序,根据提示输入要爬取内容的代码;

2、输入要爬取的网页数(其中每页有55篇文章的URL),回车;

3、爬取结果
       本次爬取的是220篇申论范文,见下图。

【考公人的福利】Python爬取中公官网资料相关推荐

  1. python 爬取NBA中国官网球员数据

    现在很多网站的数据都是通过Ajax动态加载的,我认为这恰恰降低了我们爬取的难度,因为我们无需考虑如何解析数据,只需要将json文件转换为字典形式,通过字典的键就可以取得我们所需要的数据. 爬取网站:N ...

  2. Python爬取英雄联盟官网图片

    脚本下载图片预览-草丛三兄弟 #encoding = gbk import re,os,requests,json from selenium import webdriver import ppri ...

  3. 利用python爬取英雄联盟官网英雄皮肤

    思路: 1.获取JS源代码 2.获取英雄ID 3.拼接完整路径 4.下载的位置 5.下载 import requests import re import json#获取JS源代码 def downl ...

  4. Python爬取王者荣耀官网图片

    脚本下载图片预览 两个月之前写的脚本,现在依然可用. #encoding=utf-8 #python3.6 import re,requests,json,os,time def down(url): ...

  5. Python爬取英雄联盟官网壁纸源码分享

    import json import re import requests import time def getLOLImages(): header = {'User-Agent':'Mozill ...

  6. python爬虫爬取王者荣耀官网全部英雄头像(源码分享)

    这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests import json from bs4 i ...

  7. python爬虫爬取王者荣耀官网全部装备图片(源码分享)

    这篇文章为源码分享,爬虫的分析过程请阅读文章 <用python爬取王者荣耀官网的英雄皮肤海报(含源码)> 源码 import requests from bs4 import Beauti ...

  8. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析

    原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...

  9. Python爬取豆瓣Top250电影可见资料并保存为excel形式

    Python爬取豆瓣Top250电影可见资料并保存为excel形式 利用requests第三方库实现网页的元素爬取,再使用openpyxl库进行信息的录入. 具体思路 1.分析网页的headers. ...

最新文章

  1. 【建站系列教程】2、数据源
  2. 一个极好的ALV例子
  3. WINCE下的MINGW交叉编译环境下内存崩溃地址的查找方法。
  4. 爬虫 - 豆瓣网《小王子》热评
  5. [渝粤教育] 西安交通大学 医学伦理学(2021秋) 参考 资料
  6. 【转】医疗业务学习笔记--DICOM协议的基础内容!!!!!!!!!!
  7. Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式。
  8. 【会议】2009-11-13
  9. [置顶] 火车票余票接口API使用方法
  10. php查看音频属性,PHP获取音频mp3文件时长或音频文件其它参数属性
  11. 软件工程基础 实验1《可行性研究与项目计划》
  12. hourglass论文_Hourglass模块 网络结构 代码
  13. 如何设置excel回车换行
  14. 反素数java_【Java自学】 反素数
  15. 基于Python的新闻识别预测n-gram模型和LSTM模型
  16. 伟大的教育家:美国数学免费教学大神
  17. 腾讯力推开放平台Q+
  18. 底量超顶量超级大黑马指标源码_通达信最准的买卖指标,超准短线暴涨指标源码...
  19. 3GPP 38.885 V2X解决方案
  20. 艾司博讯:拼多多标题关键词优化方法

热门文章

  1. 苹果无损和杜比全景声等引用出现在Apple Music中
  2. 奶爸日记 - 戒掉抱着睡的习惯
  3. 周杰伦《说好不哭》刷屏背后的营销思考
  4. 紫光展锐与合作伙伴发布《共建5G产业生态倡议书》
  5. Arduino 串口命令行控制继电器
  6. 微服务演进中的经验和反思
  7. springboot使用Jsoup解析html
  8. 漫画:这份程序员自画像,有没有你?快来对号入座!
  9. css图片自适应裁剪
  10. 158亿元限售股解禁 套现压力拖累后市