chrome 插件 抓取网页qq聊天记录(初识网络爬虫的基本流程及流程)
优采云 发布时间: 2022-04-18 20:18chrome 插件 抓取网页qq聊天记录(初识网络爬虫的基本流程及流程)
文章目录
1、准备聊天
1、关闭计算机的防火墙
2、关闭不必要的虚拟网络和其他不必要的以太网,只留下一个网络聊天通道
3、两台电脑连接同一个手机热点,打开疯狂聊天程序
2聊天抓包2.1、狂聊
1、先给自己起个聊天昵称,在两台电脑(或多台电脑一起)输入同一个*敏*感*词*号码
2、发消息,即聊天
2.2、使用wireshark捕获聊天消息
1、打开wireshark捕捉wlan(无线网络)下的聊天信息,如果没有,请参考:
2 查看聊天信息的Dst地址为255.255.255.255
3、查找目标为 25 的记录5.255.255.255
可以看到网络是通过UDP协议连接的
4、查看英文聊天消息
5、查看数字聊天消息
6、查看文字聊天消息
7、从上面的爬取结果来看,聊天使用的端口是17345,使用的协议是UDP
2、从网络爬虫开始2.1、什么是爬虫
1、简介:网络爬虫也称为网络蜘蛛、网络蚂蚁、网络机器人等,它的英文名称是Web Crawler或Web Spider,可以自动浏览网络上的信息。当然,在浏览信息时,您需要遵循我们的公式。浏览的规则,这些规则我们称之为网络爬虫算法。使用Python,编写爬虫程序来自动检索互联网信息非常方便。
2、爬虫的基本流程:发起请求:通过url向服务器发起请求,请求中可以收录额外的头部信息。获取响应内容:如果服务器正常响应,那么我们会收到一个响应,也就是我们请求的网页内容,可能收录HTML、Json字符串或者二进制数据(视频、图片)等。
3、URL管理模块:发起请求。通常,请求是通过 HTTP 库向目标站点发出的。相当于自己打开浏览器,输入网址。
下载模块:获取响应内容(response)。如果服务器上存在请求的内容,服务器会返回请求的内容,一般为:HTML、二进制文件(视频、音频)、文档、Json字符串等。
解析模块:解析内容。对于用户来说,就是找到他们需要的信息。对于Python爬虫来说,就是使用正则表达式或者其他库来提取目标信息。
存储模块:保存数据。解析后的数据可以以文本、音频、视频等多种形式存储在本地。
2.2、爬取南洋理工ACM专题网站资料
1、打开南洋理工ACM话题网站,然后按F12进入工作模式,点击source,可以看到网页的源代码,然后就可以看到话题信息了我们需要的是在TD标签里面,也就是我们要爬取TD标签里面的内容
2、我用的是jupyter,打开用python编程
import requests# 导入网页请求库
from bs4 import BeautifulSoup# 导入网页解析库
import csv
from tqdm import tqdm
# 模拟浏览器访问
Headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400'
# 表头
csvHeaders = ['题号', '难度', '标题', '通过率', '通过数/总提交数']
# 题目数据
subjects = []
# 爬取题目
print('题目信息爬取中:\n')
for pages in tqdm(range(1, 11 + 1)):
# 传入URL
r = requests.get(f'http://www.51mxd.cn/problemset.php-page={
pages}.htm', Headers)
r.raise_for_status()
r.encoding = 'utf-8'
# 解析URL
soup = BeautifulSoup(r.text, 'html5lib')
#查找爬取与td相关所有内容
td = soup.find_all('td')
subject = []
for t in td:
if t.string is not None:
subject.append(t.string)
if len(subject) == 5:
subjects.append(subject)
subject = []
# 存放题目
with open('D:\word\protice.csv', 'w', newline='') as file:
fileWriter = csv.writer(file)
fileWriter.writerow(csvHeaders)
fileWriter.writerows(subjects)
print('\n题目信息爬取完成!!!')
3、然后运行程序
4、查看生成的爬取数据
2.3、爬取重庆交大新闻近年所有信息公告网站
1、打开重庆交通大学信息通知网站:
2、F12也打开进入开发者模式,网页源码可以在emelents下找到。可以看到我们需要爬取的信息在div标签中
3、查找要爬取的数据页数
4、 接下来在jupyter中编写代码
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 17 14:39:03 2021
@author: 86199
"""
import requests
from bs4 import BeautifulSoup
import csv
from tqdm import tqdm
import urllib.request, urllib.error # 制定URL 获取网页数据
# 所有新闻
subjects = []
# 模拟浏览器访问
Headers = {
# 模拟浏览器头部信息
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53"
}
# 表头
csvHeaders = ['时间', '标题']
print('信息爬取中:\n')
for pages in tqdm(range(1, 65 + 1)):
# 发出请求
request = urllib.request.Request(f'http://news.cqjtu.edu.cn/xxtz/{
pages}.htm', headers=Headers)
html = ""
# 如果请求成功则获取网页内容
try:
response = urllib.request.urlopen(request)
html = response.read().decode("utf-8")
except urllib.error.URLError as e:
if hasattr(e, "code"):
print(e.code)
if hasattr(e, "reason"):
print(e.reason)
# 解析网页
soup = BeautifulSoup(html, 'html5lib')
# 存放一条新闻
subject = []
# 查找所有li标签
li = soup.find_all('li')
for l in li:
# 查找满足条件的div标签
if l.find_all('div',class_="time") is not None and l.find_all('div',class_="right-title") is not None:
# 时间、爬取的标签
for time in l.find_all('div',class_="time"):
subject.append(time.string)
# 标题
for title in l.find_all('div',class_="right-title"):
for t in title.find_all('a',target="_blank"):
subject.append(t.string)
if subject:
print(subject)
subjects.append(subject)
subject = []
# 保存数据
with open('D:/word/new.csv', 'w', newline='',encoding='utf-8') as file:
fileWriter = csv.writer(file)
fileWriter.writerow(csvHeaders)
fileWriter.writerows(subjects)
print('\n信息爬取完成!!!')
5、运行代码
6、爬取的数据
3、总结
刚刚接触爬虫,对爬虫不是很熟悉,但是参考网上的资料,还是可以爬取一些简单的信息。对于网站的信息爬取,首先要分析网站的源码,分析爬取信息,找到其所属标签的内容,然后进行爬取。通过这个实践,我意识到爬虫对我们还是很有帮助的,它们可以很好地帮助我们处理随机信息。
参考: