爬虫初识

由于寝室老是没电导致我的电脑处于工作状态开机,气死我了,我便想用python来了解目前的电费是多少并给我发邮件,首先我们要了解一下基本的python发送响应包的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import requests

# 发送 GET 请求
url = 'https://example.com' # 将此替换为你要访问的网址
response = requests.get(url)

# 检查请求是否成功
if response.status_code == 200:
print("请求成功!")
# 获取网页内容
content = response.text # 返回HTML内容
print(content)
else:
print(f"请求失败,状态码:{response.status_code}")

import requests

# 发送 POST 请求
url = 'https://example.com/api' # 将此替换为实际的API URL
data = {'username': 'your_username', 'password': 'your_password'} # 传递的数据
response = requests.post(url, data=data)

# 检查请求是否成功
if response.status_code == 200:
print("POST 请求成功!")
# 获取响应内容
print(response.text)
else:
print(f"请求失败,状态码:{response.status_code}")

在了解之后我们用bp抓包,发现一个问题,我们不再微信程序时网页会有一个自校验的情况,让我们在微信中打开,这无疑是我们不希望的不过我们可以修改我们的请求头部伪造我们在微信中的情景

这是在User agent 修改,这样服务端便会认为我们在微信中了

1
Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) > AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 > Chrome/37.0.0.0 Mobile Safari/537.36 > MicroMessenger/6.0.2.56_r958800.520 NetType/WIFI

下面是我们的请求报文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
POST /app/app/api/user/searchBindHouseListForMoney HTTP/1.1
Host: xdxfdf.xtu.edu.cn
Content-Length: 58
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) > AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 > Chrome/37.0.0.0 Mobile Safari/537.36 > MicroMessenger/6.0.2.56_r958800.520 NetType/WIFI
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://xdxfdf.xtu.edu.cn
Referer: http://xdxfdf.xtu.edu.cn/app/api/main/wxpay/payStepOne?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXX
Connection: keep-alive

wxId=XXXXXXXXXXXXXXXXXXX&appId=XXXXXXXXXXXXXXXXXXXXXXX

在python中的写法便是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import requests
import smtplib
# 请求的 URL
url = "https://xdxfdf.xtu.edu.cn/app/app/api/user/searchBindHouseListForMoney"
headers = {
"Cookie": "JSESSIONID=XXXXXXXXXXXXXXXXX",
}
data = {
"wxId": "XXXXXXXXXXXXX",
"appId": "XXXXXXXXXXXXX",
}
response = requests.post(url, headers=headers,data=data)
# 检查响应状态码
if response.status_code == 200:
print("请求成功!")
print("响应内容:", response.json()) # 假设返回的内容是 JSON 格式
else:
print(f"请求失败,状态码:{response.status_code}")
print("响应内容:", response.text)

可见重要的其实是cookie
我们的响应内容是(json转义后的)

1
{'data': [{'customer_no': '00116607', 'house_id': 'xxxxxxxxxxxxxx', 'meter': [{'meter_status': None, 'customer_no': '00116607', 'sysId': None, 'wallet_balance': 0, 'house_addr': 'XXXX', 'meter_balance': 64.18, 'meter_type': '1', 'meter_balance_time': '20240914225456', 'buy_time': None, 'free_balance': None, 'house_no': '607', 'pay_type': '1', 'customer_name': 'xxxxxxx', 'meter_no': '000017001111', 'meter_id': 'xxxxxxxxxxxxxxxxxxxxx'}], 'house_no': '607', 'wallet_balance': 0, 'house_addr': 'xxxxxxxxxxxx', 'customer_name': 'XXXXXXXXXXXXX', 'pay_customer_flag': '0'}], 'msg': '', 'ret': '1'}

成功获取我们要的报文后我们了解了在python中存在一个交SMTP的库,自带的竟然是,直接贴使用代码,看得更清楚些

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 第三方 SMTP 服务
mail_host="smtp.XXX.com" #设置服务器
mail_user="XXXX" #用户名
mail_pass="XXXXXX" #口令


sender = '[email protected]'
receivers = ['[email protected]'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')
message['To'] = Header("测试", 'utf-8')

subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')


try:
smtpObj = smtplib.SMTP()
smtpObj.connect(smtp.qq.com, 25) # 25 为 SMTP端口号 456为ssh加密端口号
smtpObj.login(mail_user,mail_pass) #用户的邮箱号,pass不是密码是SMTP授权号码
smtpObj.sendmail(sender, receivers, message.as_string())
print "邮件发送成功"
except smtplib.SMTPException:
print "Error: 无法发送邮件"

我们需要开启qq邮箱的smtp服务,了解了

顺便贴一个From的格式我在这里卡住了。。。邮箱格式要正确呜呜呜


爬虫初识
https://fogpost.top/2024/09/14/爬虫初识/
作者
fogpost
发布于
2024年9月14日
许可协议