实战1-python爬取安全客新闻

本文详细介绍了使用Python进行网站爬取的步骤,包括检查robots.txt、测试请求、设置请求头、处理响应数据(如HTML解析)以及数据筛选。作者还提供了实例代码,展示了如何抓取并整理网页中的链接和标题信息。
摘要由CSDN通过智能技术生成

一般步骤:确定网站–搭建关系–发送请求–接受响应–筛选数据–保存本地

1.拿到网站首先要查看我们要爬取的目录是否被允许

一般网站都会议/robots.txt目录,告诉你哪些地址可爬,哪些不可爬,以安全客为例子

![c3841320922d41f9b8a9dcef29d3a253.png](https://img-
blog.csdnimg.cn/direct/c3841320922d41f9b8a9dcef29d3a253.png)

2. 首先测试在不登录的情况下是否请求成功

![679ebabcd1a84e858d91a7760bf9e085.png](https://img-
blog.csdnimg.cn/direct/679ebabcd1a84e858d91a7760bf9e085.png)

可见,该请求成功;有很多网站在没有登录的情况下是请求失败的,这时需要添加请求头信息,

注意:有的cookie 会根据时间戳生成,有的会失效

haders={},

2.1、首先 F12 到 Network 下,F5刷新 ,复制 Requests Headers然后把它转换成 json 格式

![9970738770d240aebafece4e0a059dc9.png](https://img-
blog.csdnimg.cn/direct/9970738770d240aebafece4e0a059dc9.png)

2.1.1 Requests Headers 转 json 格式有很多种方法

1. 在线转 json 格式的网站:在线HTTP请求/响应头转JSON工具 -
UU在线工具

2.如果电脑没网 在终端下载:pip install feapder

feapder create -j

![a92820dee0c245da9d8d565b8839f64e.png](https://img-
blog.csdnimg.cn/direct/a92820dee0c245da9d8d565b8839f64e.png)

req=requests.get(url=url).text 是把所有的文本都提取出来,会很乱,所有我们需要筛选,整理一下

可以发现,我们需要的数据在 a 标签中

苹果委托进行数据泄露研究,以强调端到端加密的必要性

数据多了id位数也可能会增加;也可以把id写死,根据291754是个六位数,所以 \d{6}只匹配 id是六位数的。

Title=re.findall(r'<a target="_blank" href="/post/id/\d+">(.*?)</a>',req)

\d+

![12b8409adbb64e49a9360ecfd84d080e.png](https://img-
blog.csdnimg.cn/direct/12b8409adbb64e49a9360ecfd84d080e.png)

注意代码格式

range() 取值 [ )

![504568ce397e4820b8cc60d8de855abf.png](https://img-
blog.csdnimg.cn/direct/504568ce397e4820b8cc60d8de855abf.png)

最终代码:

import re
import requests
#headers={}
url='https://www.anquanke.com/'
req=requests.get(url=url).text
# print(req)
dict={}
for i in range(1,20):
    dict['Title']=re.findall(r'<a target="_blank" href="/post/id/\d+">(.*?)</a>',req)[i]
    dict['url']=re.findall(r'<a target="_blank" href="(/post/id/\d+)">',req)[i]
    print(dict)

![4c1617281dd14f3bae23cd4679a7d9df.png](https://img-
blog.csdnimg.cn/direct/4c1617281dd14f3bae23cd4679a7d9df.png)

优化后的代码:

import re
import requests
url='https://www.anquanke.com/'
req=requests.get(url=url)
print(req.status_code)
req=req.text
dict={}
Title=re.findall(r'<a target="_blank" href="(/post/id/\d+)">(.*?)</a>',req)
# print(Title)
for title in Title:
    dict['Title']=title[1]
    dict['url']=url+title[0]
    print(dict)

![fdf283bf629f4f86a4d97067edf29cdd.png](https://img-
blog.csdnimg.cn/direct/fdf283bf629f4f86a4d97067edf29cdd.png)

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

扫码领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值