帮我写一个python脚本,在我txt文档里面全都是网址,我希望这个脚本可以引用这个txt文件,然后查询里面的网址,并且给我返回以下内容:网站的标题、网站的ip,网站的whios信息、网站的访问状态、网站的架构是php或者是asp等等信息。
时间: 2023-06-01 08:01:45 浏览: 80
PHP获取网页内容的方法.txt
这个需求可以通过使用Python的requests、BeautifulSoup、whois、socket等库来实现。下面是一个大致的实现过程:
1. 引用需要的库:
```
import requests
from bs4 import BeautifulSoup
import whois
import socket
```
2. 读取txt文件中的网址列表:
```
with open('urls.txt', 'r') as f:
urls = f.readlines()
```
3. 循环遍历网址列表,查询相关信息:
```
for url in urls:
url = url.strip() # 去除换行符等空白字符
# 获取网站标题
try:
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
title = soup.title.string.strip()
except:
title = '无法获取标题'
# 获取网站IP
try:
ip = socket.gethostbyname(url.split('//')[1].split('/')[0])
except:
ip = '无法获取IP'
# 获取whois信息
try:
w = whois.whois(url)
whois_info = w.text.replace('\n', '<br>')
except:
whois_info = '无法获取whois信息'
# 获取网站访问状态
try:
response = requests.get(url)
status_code = response.status_code
except:
status_code = '无法访问'
# 获取网站架构信息
try:
headers = response.headers
server = headers['Server']
x_powered_by = headers['X-Powered-By']
framework = server + ' / ' + x_powered_by
except:
framework = '无法获取架构信息'
# 输出查询结果
print('网址:', url)
print('标题:', title)
print('IP:', ip)
print('whois信息:', whois_info)
print('状态码:', status_code)
print('架构信息:', framework)
print('-'*50)
```
将以上代码保存为一个.py文件,运行即可查询txt文件中所有网址的相关信息。需要注意的是,由于whois查询较为耗时,因此查询速度可能较慢,具体视网址数量和网络状况而定。
阅读全文