#python #python-3.x #python-2.7 #beautifulsoup #python-requests
#python #python-3.x #python-2.7 #beautifulsoup #python-запросы
Вопрос:
Я разрабатывал программу, которая проверяет, работает веб-сайт или нет. Я извлекаю URL-адреса из таблицы Excel, а затем вставляю результаты как True (рабочие) и False (нерабочие) в ту же таблицу Excel, но для некоторых URL-адресов, таких какhttp://www.andrewelliotgroup.com / и https://www.sovranollc.com / , он показывает, что веб-сайт работает, но на веб-сайте нет данных. Я хочу отфильтровать веб-сайты такого типа без данных по нерабочим категориям. Помимо использования кода состояния, какой еще KPI я могу использовать, чтобы доказать это. Вот код:
import http.client as httpc
from urllib.parse import urlparse
import pandas as pd
import xlwings as xw
import smtplib
from xlsxwriter import Workbook
from xlutils import copy
import socket
import requests
from bs4 import BeautifulSoup as BS
socket.getaddrinfo('172.23.24.143', 8080)
x=[]
df = pd.read_excel (r'xyz.xlsx')
df1=pd.DataFrame(df,columns=['URL'])
print(df1)
url_list=df["URL"].tolist()
print(url_list)
for i in url_list:
def checkUrl(i):
if 'http' not in i:
i= 'https://' i
p = urlparse(i)
if (p.scheme == 'http'):
conn = httpc.HTTPConnection(p.netloc,timeout=15)
else:
conn = httpc.HTTPSConnection(p.netloc,timeout=15)
try:
conn.request('HEAD', p.path)
resp = conn.getresponse()
return resp.status<400:
except OSError:
return False
print(checkUrl(i))
x.append(checkUrl(i))
workbook = Workbook('xyz.xlsx')
Report_Sheet = workbook.add_worksheet()
Report_Sheet.write(0, 1, 'Value')
Report_Sheet.write_column(1, 1, x)
Report_Sheet.write(0,0,'URL')
Report_Sheet.write_column(1, 0, url_list)
workbook.close()
Комментарии:
1. Формально эти сайты работают, если вы не получаете
Service Unavailable
ошибку. Итак, ваш вопрос касается фильтрации сайтов без данных.2. почему бы вам просто не проверить код состояния вместо содержимого веб-сайта?
3. вероятно, причина в том, что веб-сайты
work
(доступны), но пусты.4. Да, @Alderven, я хочу отфильтровать сайты, у которых нет кода состояния данных, показывающего, что веб-сайт работает.
5. Вам понадобится определение для no data, поскольку даже между двумя сайтами, которые вы перечисляете, есть разница в количестве присутствующего html.