某政府网站信息文章标题、链接、刊布时间等信息获取

news/2024/5/20 23:51:34/文章来源:https://blog.csdn.net/weixin_42521211/article/details/108817233

目录

    • 一、需求信息
    • 二、过程感触
    • 三、实战code


一、需求信息

需要信息: 每个内容下开篇的索引号、发布机构、组配分类、标题、发布时间和链接地址,部分实例如下图:
在这里插入图片描述
上图中左侧的目录结构对应的刊布信息中的如下信息:
在这里插入图片描述

题外话:有些日子没有爬取过信息了,本来就是个菜鸟,时间间隔的一久,真的感觉忘得光光的。有种重头再来的感觉。
还是要时常回头看看,不时的回顾回顾,不然知识它真的不进脑子啊。

二、过程感触

爬虫只是自己之前突发想法,就看了一点书籍,顺带简单练了练手,接触的很是浅显,诸如怎么用Scrapy这种专业的方式去获取,就一直没研究。或许是现在没啥需求吧,学习的动力也就不足。

言归正传,目前初步的一个体验就是看到的网页的源码信息,自己找不到对应的 真实 地址信息,因此时常扑空。如果找到了地址信息,获取具体的信息的逻辑加工,反倒变得简单了。毕竟获取的信息都是很规范化的。
比如这个目录结构,我就是从这个地方才发现:
在这里插入图片描述
这才打开了实现的一道口子,至于具体文章的信息获取,这个位置的信息就很好处理,没有那么多的“坑”。
爬虫,某种程度上就是在找获取的信息地址的跳转间的逻辑关系,理清了这一点,其他的具体信息的获取、存放,感觉相对来说就不是那么复杂了。当然,还有一个最大的问题就是反爬问题,这个问题就复杂,还不在自己的重点考虑范围,毕竟获取的信息基本都是公开的,也不涉及很多的信息和很大的数据量。

时常还是要爬爬,不然真的就不会了。

欢迎提需求,共同探讨,学习!

三、实战code

说一千,道一万,还是扎扎实实的干吧,实战为王!!!

# 导入库
from bs4 import BeautifulSoup
import re
import pandas as pd
import json
import requests
import time # url = "http://www.****.***.cn/col/col156912/index.html?vc_xxgkarea=371700000000&number=&jh=263"
get_headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/**.*****.Safari/537.36","Host": "www.****.***.cn","Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6"
}
post_headers = {'Accept': '*/*','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6','Connection': 'keep-alive','Cookie': 'cod=*******************************************',# 根据自己电脑配置'Host': 'www.****.***.cn','Origin': 'http://www.****.***.cn','Referer': 'http://www.****.***.cn/module/xxgk/tree.jsp?area=&divid=div156912&showwebname=1&limit=0&standardXxgk=1&isGB=1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36','X-Requested-With': 'XMLHttpRequest'
}
tree_url = "http://www.****.***.cn/module/xxgk/tree.jsp?area=&divid=div156912&showwebname=1&limit=0&standardXxgk=1&isGB=1"

获取目录信息,以及对应的id,为了获取不同目录信息下的内容信息。


html = requests.get(tree_url,headers=get_headers)
soup = BeautifulSoup(html.text,'lxml')
mulu_tree = soup.findAll('script')[2]
mulu_split = (str(mulu_tree).split('\n'))[1].split(';">')mulu_list = []    # 存放目录名和 对应的id 信息
for i in range(len(mulu_split)):try:mulu_id = re.search(r"funclick\(.*\\\'\,\\\'",mulu_split[i])mulu_id = mulu_id.group()mulu_id = re.search(r'\'.*\',',mulu_id)mulu_id = mulu_id.group()mulu_id = mulu_id[1:-3]                     # infotypeIdmulu_name = re.search(r".*</a>\'\);",mulu_split[i])mulu_name = mulu_name.group()if len(mulu_name)>50:continuemulu_name = mulu_name[:-7]  # 目录链的名称mulu_list.append([mulu_name,mulu_id]) except:pass

开始获取不同目录页面下的文章对应的想要获取的具体信息。

result = [] # 存放结果post_data = {'divid': 'div156912','infotypeId': 'HZA10202040206','jdid': 62,'area': '','standardXxgk': 1
}
url = 'http://www.****.***.cn/module/xxgk/search.jsp?'
num = 0
count = 0
for mulu_name,mulu_id in mulu_list:num +=1print(num,mulu_name,mulu_id)post_data['infotypeId'] = mulu_idhtml = requests.post(url,headers=post_headers,data=post_data)html.encoding='utf-8' # 将编码格式改为utf-8soup = BeautifulSoup(html.text,'lxml')first_message = soup.findAll('div',class_="zfxxgk_zdgkc")########################################################################################messages = re.findall('<a.*</a>',str(first_message),re.M)for i in range(len(messages)):try:href = "http://www.****.***.cn/"+re.findall('/art.*html',messages[i],re.M)[0]   # 链接地址except:continuetitle = re.findall('title=".*"',messages[i],re.M)[0].split('"')[1]              # 标题# 链接里边的信息html_two = requests.get(href,headers=get_headers)html_two.encoding='utf-8' # 将编码格式改为utf-8soup_two = BeautifulSoup(html_two.text,'lxml')message_two = soup_two.findAll('table')if message_two:fabu_date = soup_two.find('span',class_='date').text[5:-6] # 发布日期six_mes = message_two[2].findAll('td')                    index_num = re.sub(r'\s*','',six_mes[1].text)              # 索引号gongkai = re.sub(r'\s*','',six_mes[3].text)                # 公开方式fabu = re.sub(r'\s*','',six_mes[5].text)                   # 发布机构fenlei = re.sub(r'\s*','',six_mes[7].text)                 # 组配分类wenhao = re.sub(r'\s*','',six_mes[9].text)                 # 发文文号try:youxiaoxing = re.sub(r'\s*','',six_mes[11].text)           # 有效性except:youxiaoxing=''result.append([mulu_name,mulu_id,title,href,fabu_date,index_num,gongkai,fabu,fenlei,wenhao,youxiaoxing])count +=1print(count)time.sleep(1) # 程序休眠5s
#     num +=1
#     if num>2:
#         breakresult = pd.DataFrame(result,columns=['对应目录','目录id','标题','链接地址','发布日期','索引号','公开方式','发布机构','组配分类','发文文号','有效性'])
result.to_excel('网站信息获取结果2.xlsx')

部分结果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_827975.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型分布式网站术语分析 15 条,你知道几条?

点击上方“芋道源码”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;源码精品专栏 精尽 Dubbo 原理与源码专栏( 已经完成 69 篇&#xff0c;预计总共 75 篇 )中文详细注释的开源项目Java 并发源码合集RocketMQ 源码合集Sharding-JDBC 源码解析合集Spring MVC…

几个大型网站的Feeds(Timeline)设计简单对比

点击上方“芋道源码”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;源码精品专栏 精尽 Dubbo 原理与源码专栏( 已经完成 69 篇&#xff0c;预计总共 75 篇 )中文详细注释的开源项目Java 并发源码合集RocketMQ 源码合集Sharding-JDBC 源码解析合集Spring MVC…

基于LAMP环境发布一个Discuz论坛网站

一、LAMP是什么 1、LAMP是常见的Web服务器环境解决方案&#xff0c;用于创建和管理Web应用程序的开源开发平台。Linux用作后端操作系统&#xff0c;Apache是​​Web服务器&#xff0c;MySQL是数据库&#xff0c;PHP是脚本语言。 2、LAMP 为 Linux、Apache、MySQL、PHP 的简称…

尾随《大型网站技术架构》作者,从零单排「大数据」

李智慧大佬&#xff0c;《大型网站技术架构》&#xff08;艿艿的架构启蒙读物&#xff09;的作者&#xff0c;豆瓣评分 7.9 分&#xff0c;出了「大数据」专栏。所以&#xff0c;如果你数据量挺大的&#xff0c;可以扫码买一买。如果你数据量不大&#xff0c;但是想膨胀膨胀&am…

大型网站架构演进的五大阶段盘点

点击上方“芋道源码”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人&#xff01;源码精品专栏 精尽 Dubbo 原理与源码 69 篇精尽 Netty 原理与源码 61 篇中文详细注释的开源项目Java 并发源码合集RocketMQ 源码合集Sharding-JDBC 源码解析合集Spring MVC …

初步了解网站压力测试工具

http://www.51testing.com/html/index.html(51测试网) 一、ab网站压力测试 ab是apache自带的压力测试工具&#xff0c;ab是apachebench命令缩写。它不仅可以对apache服务器进行网站访问压力测试&#xff0c;也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。…

用户在电商网站中购买成功了,那么 TA 在微服务中经历了什么?

点击上方“芋道源码”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人&#xff01;源码精品专栏 原创 | Java 2019 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库…

Python采集网站随机header

不废话直接代码&#xff1a; import randomclass UserAgent:def __init__(self):self.headers ["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X…

分享Html模板5合一模板---50电影模板、56个游、86个体育项目、95个音乐网站、116个时尚

模板下载链接:https://pan.baidu.com/s/1zNvc5K8tpWbxAKuIziGgjg 密码:agk4 50电影模板Html模板&#xff01; 56个游戏Html模板 86个体育项目Html模板 95个音乐网站Html模板 116个时尚Html模板 我就不相信没有你需要的&#xff01; 50电影模板Html模板&#xff01; 儿童…

《大型网站系统与Java中间件》读书笔记(上)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库&#xff0c;欢迎Star&#xff1a;github.com/ZhongFuChen… &#xff08;想自学习编程的小伙伴请搜索圈T社区&#xff0c;更多行业相关资讯更有行业相关免费视频教程。完全免费哦!&#xff09; 一、为什么分布式&#xff…

《大型网站系统与Java中间件》读书笔记 (中)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库&#xff0c;欢迎Star&#xff1a;github.com/ZhongFuChen… 回顾上一篇&#xff1a; 《大型网站系统与Java中间件》读书笔记&#xff08;一&#xff09; 这周周末读了第四章&#xff0c;现在过来做做笔记&#xff0c;希望…

利用node.js写爬虫 爬取某相亲网站全部交友信息

点击查看爬取世纪佳缘相亲交友信息 利用node.js&#xff0c;写了一个爬虫js。1个小时左右的时间&#xff0c;便爬取了2000多条交友信息&#xff0c;包括网名&#xff0c;年龄&#xff0c;图片&#xff0c;学历&#xff0c;工资等。当然&#xff0c;爬取的速度和网速有很大的关…

分享21个广告排行、15个交友会员、25个网站导航和39个文件管理PHP源码,总有一款适合你

链接&#xff1a;https://pan.baidu.com/s/1aMHf6wDNbHm-2upU287w2A 提取码&#xff1a;px8q 分享21个广告排行、15个交友会员、25个网站导航和39个文件管理PHP源码&#xff0c;总有一款适合你 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要…

支付宝记---电脑网站支付(.NET)

根据商品信息和价格生成支付宝支付的二维码 2019年夏&#xff0c;张渔歌仄伏于家中。越明年&#xff0c;疫情依旧&#xff0c;渔歌隧研究支付宝支付。其中心酸不言表&#xff0c;属予作文以记之。 一、准备工作 1、支付宝开发平台https://open.alipay.com/。需要进行企业级的…

Web Monitor/Dev/Test Tool Collection 网站/网页监控/开发/测试工具集合

HttpWatch HttpWatch是强大的网页数据分析工具. 包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出. Features: Easily monitor HTTPS, HTTP and SPDY without using proxies or changing network settingsSupports IE/Firefox on…

Java 爬虫遇到需要登录的网站,该怎么办?

这是 Java 网络爬虫系列博文的第二篇&#xff0c;在上一篇 Java 网络爬虫&#xff0c;就是这么的简单 中&#xff0c;我们简单的学习了一下如何利用 Java 进行网络爬虫。在这一篇中我们将简单的聊一聊在网络爬虫时&#xff0c;遇到需要登录的网站&#xff0c;我们该怎么办&…

【Python】Flask+Gunicorn搭建简单网站

1.安装Flask第三方库 pip3 install Flask 2.创建Flask应用程序 项目结构如上图所示&#xff0c;其中static用来放置静态文件&#xff0c;如js文件、css文件以及图片等&#xff0c;templates文件夹用来放置模板文件&#xff0c;即html文件。 在项目中导入Flask第三方库&#…

【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器

一、反向代理&#xff1a;Web服务器的“经纪人” 1.1 反向代理初印象 反向代理&#xff08;Reverse Proxy&#xff09;方式是指以代理服务器来接受internet上的连接请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;并将从服务器上得到的结果返回给internet上请…

css3和html5网站模板

过去的几年&#xff0c;网页设计和制作人员就已开始关注和使用 HTML5 了&#xff0c;如今 HTML5 得到了更加广泛的应用&#xff0c;国外已有很多基于 HTML5 制作的网站。所以&#xff0c;今天这篇文章给大家带来的是35款基于 HTML5 和 CSS3 的非常精致的网站模板&#xff0c;大…

分享88个ASP.NET企业网站源码,总有一款适合您

分享88个ASP.NET企业网站源码&#xff0c;总有一款适合您 88个ASP.NET企业网站源码下载链接&#xff1a;https://pan.baidu.com/s/1AXv0-dmV-bV-MQTyX9OXRg?pwdzcwa 提取码&#xff1a;zcwa Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 新翔绩效考核系统基…