import pandas as pd
from io import StringIO
html = '''<!-- SW --><TABLE WIDTH=100%><TD CLASS=pt><A NAME="installed programs">Установленные программы</A><TR><TD><HR></TABLE><TABLE><TR><TD WIDTH=16> <TD WIDTH=16><TD><TD><TD><TD><TD><TD>
<TR><TD><TD><TD><B>Программа</B> <TD CLASS=cr><B>Версия</B> <TD CLASS=cr><B>Размер</B> <TD><B>GUID</B> <TD><B>Издатель</B> <TD CLASS=cr><B>Дата</B>
<TR><TD><TD><TD>64 Bit HP CIO Components Installer <TD CLASS=cr>16.2.1 <TD CLASS=cr>Неизвестно <TD>{F8F948EA-5AEA-4158-8821-A2F788ECE936} <TD>Hewlett-Packard <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>HP LaserJet Pro M201-M202 <TD CLASS=cr>15.0.16064.399 <TD CLASS=cr>Неизвестно <TD>{e71f6d30-080d-43ef-87e0-1ac4d7f8adfa} <TD>Hewlett-Packard <TD CLASS=cr>
<TR><TD><TD><TD>HP Unified IO <TD CLASS=cr>2.0.0.434 <TD CLASS=cr>Неизвестно <TD>{F1390872-2500-4408-A46C-CD16C960C661} <TD>HP <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>HP Update <TD CLASS=cr>5.005.002.002 <TD CLASS=cr>Неизвестно <TD>{912D30CF-F39E-4B31-AD9A-123C6B794EE2} <TD>Hewlett-Packard <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>Mesh Agent <TD CLASS=cr>2022-12-02 22:42:16.000+03:00 <TD CLASS=cr>Неизвестно <TD>Mesh Agent <TD> <TD CLASS=cr>
<TR><TD><TD><TD>Microsoft Edge <TD CLASS=cr>132.0.2957.115 <TD CLASS=cr>Неизвестно <TD>Microsoft Edge <TD>Корпорация Майкрософт <TD CLASS=cr>2025-01-20
<TR><TD><TD><TD>Microsoft Office LTSC профессиональный плюс 2021 - ru-ru <TD CLASS=cr>16.0.14332.20345 <TD CLASS=cr>Неизвестно <TD>ProPlus2021Volume - ru-ru <TD>Microsoft Corporation <TD CLASS=cr>
<TR><TD><TD><TD>Microsoft Update Health Tools <TD CLASS=cr>3.74.0.0 <TD CLASS=cr>Неизвестно <TD>{1FC1A6C2-576E-489A-9B4A-92D21F542136} <TD>Microsoft Corporation <TD CLASS=cr>2023-11-14
<TR><TD><TD><TD>Mozilla Firefox (x64 ru) <TD CLASS=cr>134.0.1 <TD CLASS=cr>Неизвестно <TD>Mozilla Firefox 134.0.1 (x64 ru) <TD>Mozilla <TD CLASS=cr>
<TR><TD><TD><TD>Mozilla Maintenance Service <TD CLASS=cr>113.0.1 <TD CLASS=cr>Неизвестно <TD>MozillaMaintenanceService <TD>Mozilla <TD CLASS=cr>
<TR><TD><TD><TD>Office 16 Click-to-Run Extensibility Component <TD CLASS=cr>16.0.14332.20345 <TD CLASS=cr>Неизвестно <TD>{90160000-008C-0000-1000-0000000FF1CE} <TD>Microsoft Corporation <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>Office 16 Click-to-Run Licensing Component <TD CLASS=cr>16.0.14332.20345 <TD CLASS=cr>Неизвестно <TD>{90160000-007E-0000-1000-0000000FF1CE} <TD>Microsoft Corporation <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>Office 16 Click-to-Run Localization Component [Русский (Россия)] <TD CLASS=cr>16.0.14332.20281 <TD CLASS=cr>Неизвестно <TD>{90160000-008C-0419-1000-0000000FF1CE} <TD>Microsoft Corporation <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>STDU Viewer version 1.6.361.0 <TD CLASS=cr>1.6.361.0 <TD CLASS=cr>Неизвестно <TD>STDU Viewer_is1 <TD>STDUtility <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>Update for x64-based Windows Systems (KB5001716) <TD CLASS=cr>8.94.0.0 <TD CLASS=cr>Неизвестно <TD>{DA80A019-4C3B-4DAA-ACA1-6937D7CAAF9E} <TD>Microsoft Corporation <TD CLASS=cr>2024-10-16
<TR><TD><TD><TD>VixWin Platinum <TD CLASS=cr>3.50.000 <TD CLASS=cr>Неизвестно <TD>{81695582-88F8-47A6-8431-C10617AF058A} <TD>Gendex <TD CLASS=cr>2023-05-19
<TR><TD><TD><TD>WinRAR 6.21 (64-разрядная) <TD CLASS=cr>6.21.0 <TD CLASS=cr>Неизвестно <TD>WinRAR archiver <TD>win.rar GmbH <TD CLASS=cr>
<TR><TD><TD><TD>КриптоПро CSP <TD CLASS=cr>5.0.12330 <TD CLASS=cr>Неизвестно <TD>{50F91F80-D397-437C-B0C8-62128DE3B55E} <TD>Компания КриптоПро <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>КриптоПро ЭЦП Browser plug-in [Русский (Россия)] <TD CLASS=cr>2.0.14816 <TD CLASS=cr>Неизвестно <TD>{E12CC7EE-36B7-4AAA-924E-2F5CD75BCECF} <TD>Компания КриптоПро <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>Платные услуги К1-1 <TD CLASS=cr>0.1 <TD CLASS=cr>Неизвестно <TD>{E59C5221-50B3-420C-84C0-DF40A1AC280E} <TD>Maximus <TD CLASS=cr>2023-05-18
<TR><TD><TD><TD>Среда выполнения Microsoft Edge WebView2 Runtime <TD CLASS=cr>131.0.2903.146 <TD CLASS=cr>Неизвестно <TD>Microsoft EdgeWebView <TD>Корпорация Майкрософт <TD CLASS=cr>2025-01-16
</TABLE><BR><BR>
'''
table = pd.read_html(StringIO(html),header=[1])[0]
print(table)
table = pd.read_html(StringIO(html),header=[1])[0]
затем выбираешь нужные тебе колонки, параметр header это с какой строки считать имя колонок, на другом примере его значение может, отличатся, по этому можешь его опустить, а выяснить нужные локации колонок, уже после. int('0 из 90')
Что выдаст точно такую же ошибку. Отлаживай что бы там было строковое представление целого числа. team = old.find("a")['title']
перед этим обернуть все try except потому что у тебя значение для некоторых 'a' получает значение None.for old in all_old_teams:
try:
team = old.find("a")['title']
print(team)
except TypeError:
print(None)
Ну и свою логику там настраивай собирай их куда тебе надо и т.д. response.status_code
равен 403. То есть html что бы парсить его супом сервер не прислал. Можно добавить ему headers.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
response = requests.get(url, headers=headers)
Теперь сервер пришлет html status_code должен быть 200 (по крайней мере у меня работает). Который можно парсить средствами beatifulsoup. Правильно ли написан парсинг, нет не правильно. Такого класса как ты ищешь там нет. Ну это все самостоятельно, объект сервер пришлет валидный для парсинга. headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0'
}
r = requests.get(url,headers=headers)
result = []
for url in urls:
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
status = soup.find('div', class_='closed')
titles = soup.find('h1', class_='section_hero__title')
id= soup.find('p', class_='numer_id')
result.append((url, status, titles, id))
import csv
with open('file.csv', mode='w') as file:
writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
writer.writerow(['url','status','titles','id'])
writer.writerows(result)
writer.writerow(['url','status','titles','id'])
из кода. import pandas as pd
df = pd.DataFrame(data=result,columns = ['url','status','titles','id'])
df.to_csv('file.csv')
link.find('a')['href']
for span in zap.find_all('span', class_="sub", limit = 3):
for link in span.find_all('a',href=True):
print(link['href'])
data = []
for i in range(5):
result = i**2
data.append(result)
data = []
for i in range(5):
result = i**2
data.append(result)
whole_part = html.find('strong',class_='f_Strong').big.text
float_part = html.find('strong',class_='f_Strong').big.next_sibling.strip()
print(whole_part + float_part)